简体   繁体   English

如何在 C# 中字符串格式化复杂的 Json 正文

[英]How To String Format Complex Json Body in C#

i have the following code我有以下代码

var UUID = "ExampleX";
var NumID = "ExampleY";
var Payload = string.Format("{\"API1\":{\"API2\":\"API3\",\"API4\":5},\"API6\":\"{0}\",\"API7\":\"{1}\",\"API8\":\"API8\"}",UUID,NumID);

i'm trying to replace the input for {0} and {1} with UUID and NumID but i kept getting the following Error我正在尝试用 UUID 和 NumID 替换 {0} 和 {1} 的输入,但我一直收到以下错误

Input string was not in a correct format.

i'm still learning how to code any help is appreciated我仍在学习如何编码任何帮助表示赞赏

You could parse the Json String as JObject and then replace the API6 and API7 values.您可以将 Json 字符串解析JObject ,然后替换 API6 和 API7 值。 For example,例如,

var json = "{\"API1\":{\"API2\":\"API3\",\"API4\":5},\"API6\":\"{0}\",\"API7\":\"{1}\",\"API8\":\"API8\"}";
var jo = JObject.Parse(json);
jo["API6"] = UUID;
jo["API7"] = NumID;
var Payload = jo.ToString();

Output输出

{
  "API1": {
    "API2": "API3",
    "API4": 5
  },
  "API6": "ExampleX",
  "API7": "ExampleY",
  "API8": "API8"
}

你必须用双括号转义 json 括号,这样它们就不会被解释为占位符:

var Payload = string.Format("{{\"API1\":{{\"API2\":\"API3\",\"API4\":5}},\"API6\":\"{0}\",\"API7\":\"{1}\",\"API8\":\"API8\"}}",UUID,NumID);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM