在c#中从Json中删除属性

时间:2015-08-29 11:57:01

标签: c# .net json

我有一个Json字符串,我想删除一些属性。

这是我的字符串,我想删除data的值:

"dev1": {
    "serial": 123,
    "channels": {
      "1": {
        "humidity": {
          "parameters": {},
          "data": [
            [
              **-3.0,
              -4.0**
            ]
          ]
        },
        "temprature": {
          "parameters": {},
          "data": [
            [
              **-3.0,
              -4.0**
            ]
          ],
          "weHadAlarmed": false
        },
        "channelName": "CH1"
      },
....

1 个答案:

答案 0 :(得分:1)

我不知道你的json的其余部分是什么样的,但是使用Newtonsoft.Json(Json.net),这样的事情会这样做

    var json = "{ \"serial\": 123, \"channels\": { \"1\": { \"humidity\": { \"parameters\": {}, \"data\": [ [ -3.0, -4.0 ] ] }, \"temprature\": { \"parameters\": {}, \"data\": [ [ -3.0, -4.0 ] ], \"weHadAlarmed\": false }, \"channelName\": \"CH1\" } } }";

    var job = JObject.Parse(json);
    job.SelectToken("channels").SelectToken("1").Values().ToList().ForEach(chan =>
    {
        if(chan.GetType() == typeof(JObject) && chan["data"] != null)
        {
            // empty array
            chan["data"] = new JArray();
            // or set it to null
            //chan["data"] = null;
        }               
    });

    string newJsonStringWouldBe = Newtonsoft.Json.JsonConvert.SerializeObject(job);