8
示例:如何最好地利用Json.NET來修改現有JSON對象的某些部分?
我有以下JSON對象。
{"currentVersion" : "10.0",
"folders" : [],
"services" : [
{"name" : "nyc", "type" : "MapServer"},
{"name" : "philly", "type" : "MapServer"}
]
}
我希望能夠根據name屬性的值從services數組中刪除一個或多個項目。例如,我想搜索名稱=「nyc」,並從數組中刪除以下對象。
{"name" : "nyc", "type" : "MapServer"}
最終的結果是一個對象,它是這樣的:我已經能夠非常輕鬆地創建新的JSON對象
{"currentVersion" : "10.0",
"folders" : [],
"services" : [
{"name" : "philly", "type" : "MapServer"}
]
}
,我可以讀現有的。但是,我很難確定修改現有JSON對象的最佳方法。特別是因爲它涉及查詢JSON對象內的特定對象。
我發現的一個方法(特定於此示例)是重新構建我想要修改的JSON部分,並根據需要替換這些標記。但是,我必須認爲有一個更好的方法。該代碼如下所示。
string json = @"{""currentVersion"" : ""10.0"",
""folders"" : [],
""services"" : [
{""name"" : ""nyc"", ""type"" : ""MapServer""},
{""name"" : ""philly"", ""type"" : ""MapServer""}
]
}";
string[] keepList = new string[] { "nyc" };
JObject o = JObject.Parse(json);
JArray services = (JArray)o["services"];
JArray newServices = new JArray();
foreach (JToken service in services)
{
foreach (string keeper in keepList)
{
if ((string)service["name"] == keeper)
{
newServices.Add(service);
break;
}
}
}
services.Replace(newServices);
string output = o.ToString();
如何最好地利用Json.NET來修改現有JSON對象的某些部分?