string a;
string b;
string jSonContent = @"{""fields"":{""summary"":""summary"" , ""description"": ""modified.""}}";
我想要 a 而不是摘要和 b 而不是修改。如果我替换摘要但是如果我替换它们则会出错。
编辑后的代码是字符串jSonContent = @" {""字段"":{""摘要" ":" +" \"" + a +" \"" +" ,""描述"":" +" \"" + b +" \"&#34 ; +"}}"; 它没有给出任何错误,摘要字段正在更新,但说明字段不是。
请还原。谢谢!
答案 0 :(得分:4)
我强烈建议您使用JSON库,例如Json.Net。
首先,您将能够使用强类型对象,此外,您将避免拼写错误和类似的错误,因为序列化程序将为您进行序列化。
public void Test()
{
string a = ""; //content of 'a' variable
string b = ""; //content of 'b' variable
var obj = new RootObject();
obj.Fields = new Fields();
obj.Fields.Summary = a;
obj.Fields.Description = b;
var jsonOutput = Newtonsoft.Json.JsonSerializer.Serialize(obj, typeof(RootObject));
}
public class Fields
{
[JsonProperty("summary")]
public string Summary { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
}
public class RootObject
{
[JsonProperty("fields")]
public Fields Fields { get; set; }
}
注意:如果您不想创建不必要的类型,可以直接使用JObject
,这是可能的用途之一:
var jobj = Newtonsoft.Json.Linq.JObject.FromObject(new {
fields = new {
summary = a,
description = b
}
});
var jsonOutput = jobj.ToString();
答案 1 :(得分:-1)
您可以使用string.Format或string.concate方法
string jSonContent = string.Concat("{\"fields\":{\"summary\":","\"",a,"\" , \"description\": \"",b,"\"}}");
答案 2 :(得分:-1)
string a = "a";
string b = "b";
string jSonContent = (@"{""fields"":{""summary"":""summary"" , ""description"": ""modified.""}}").Replace(@":""summary""", a).Replace("modified.", b);
答案 3 :(得分:-1)
使用字符串fromat $""
字符串格式允许您将变量中的值替换为字符串。 E.g。
string name = "Bruno";
string result = $"My name is {name}";
Console.WriteLine(result);
输出
My name is Bruno
在你的情况下,你只需要用双括号{{
string a = "this is a sumary";
string b = "this is a description";
string jSonContent = $"{{\"fields\":{{\"summary\":\"{a}\" , \"description\": \"{b}\"}}}}";
Console.WriteLine(jSonContent);
输出
{"fields":{"summary":"this is a sumary" , "description": "this is a description"}}
但是我强烈建议不要手动构建你的json字符串,使用Json.NET或任何其他NuGet包。