2015-08-29 2 views
-3

У меня есть строка Json, и я хочу удалить некоторые свойства.Удалить объект из Json in C#

Это моя строка, и я хочу, чтобы удалить значения data «s:

"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); 
Смежные вопросы