2015-02-08 61 views
4

我正在使用c#wpf在.net 3.5中開發一個應用程序。 我使用newtonsoft庫來解析json字符串。C#使用newtonsoft刪除json子節點

我想知道如何去除json的子節點。

例如, 我的JSON數據=

{"employees":[ 
{"firstName":"John", "lastName":"Doe"}, 
{"firstName":"Anna", "lastName":"Smith"}, 
{"firstName":"Peter", "lastName":"Jones"}]} 

功能

jobject.Remove("employees"); 

刪除所有節點成功地

我想知道如何單獨刪除第一個員工詳細信息。

回答

4

一旦你解析你的json到JObject,僱員的財產將是JArray。該JArray類有你要找的下面的代碼會做你想要

string json = 
@"{ 
    ""employees"":[ 
     { ""firstName"":""John"", ""lastName"":""Doe""}, 
     { ""firstName"":""Anna"", ""lastName"":""Smith""}, 
     { ""firstName"":""Peter"", ""lastName"":""Jones""} 
    ] 
}"; 

dynamic obj = JObject.Parse(json); 
(obj.employees as JArray).RemoveAt(0); 

// obj now only has "Anna Smith" and "Peter Jones" 

dynamic介紹了在.NET 4.0,所以3.5你會使用的東西像什麼方法,如JArray.RemoveAt

而不是

JObject obj = JObject.Parse(json); 
(obj["employees"] as JArray).RemoveAt(0);