C# 我希望不使用双引号为现有Json添加值
最初我有这样的JsonC# 我希望不使用双引号为现有Json添加值,c#,.net,json,json.net,C#,.net,Json,Json.net,最初我有这样的Json { "softwareName": "MYSOFT", "softwareVersion": "0.4.5.9", "TimeZone": "2017-03-01T11:30:18.764103" } { "status": "{success: true}", "softwareName": "MYSOFT", "softwareVersion": "0.4.5.9", "TimeZone": "2017-03-01T11:30:18.76
{
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
{
"status": "{success: true}",
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
我想在“softwareName”之前添加“status”:{success:true},我已经为其完成了此操作
JObject rss = JObject.Parse(jsonString);
rss.Property("softwareName").AddBeforeSelf(new JProperty("status", "{success: true}"));
这给了我这样的结果
{
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
{
"status": "{success: true}",
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
但是,我想得到这样的结果
{
"status": {success: true},
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
i、 e状态值,不带双引号。我怎样才能达到预期的效果?因为在那之后,我将有如下所示的视图
但是现在我有这样的
{
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
{
"status": "{success: true}",
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
试试这个
obj = {
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
}
var newKey = "status"
var newVal = {success : true}
obj[newKey] = newVal
它给
obj = {
"softwareName": "MYSOFT",
"softwareVersion": "0.4.5.9",
"TimeZone": "2017-03-01T11:30:18.764103"
"status": {success : true}
}
您要执行以下操作:
JObject rss = JObject.Parse(jsonString);
rss.Property("softwareName").AddBeforeSelf(new JProperty("status", JObject.Parse("{success: true}")));
基本上,在将字符串添加为属性之前,您需要将其解析为JSON对象。不应该将“success”也作为JProperty,将true作为其值,并将该属性作为“status”属性的值吗?看起来不错,但您应该展示如何创建
obj
对象。没有尝试您的代码。但是,它似乎会起作用@krillgar