如何更新json中的特定值?

时间:2013-10-31 14:14:54

标签: c# json

我正在使用newtonsoft json库。我想在后面的json中将令牌“Status”的值从false更新为true。我怎么能这样做?:

{
    "type": "FeatureCollection",
    "Status": false,
    "crs": {
        "type": "EPSG",
        "properties": {
            "code": 28992
        }
    }
}

2 个答案:

答案 0 :(得分:7)

您可以反序列化它,修改值并再次序列化

dynamic jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);
jsonObject.Status = true;
var modifiedJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObject);

答案 1 :(得分:3)

在这种情况下,令牌的名称是已知的(状态)。但是,当只在运行时知道令牌的名称时(当名称作为参数传递时)。

string UpdateTokenValue(string jsonString, string TokenName, string newValue)
{
    JObject jsonObj = (JObject)Netwonsoft.Json.JsonConvert.DeserializeObject(jsonstring);
    jsonObj.Property(TokenName).Value = newValue;
    return NewtonSoft.Json.JsonConvert.SerializeObject(jsonObj);
}