2015-08-29 63 views
-3

我有一个Json字符串,我想删除一些属性。从C中删除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

我不知道你的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);