我有一个从API返回的非常复杂的JSON。我只需要将"第一级"传递给客户端,而不需要其中包含所有嵌套对象
例如:
{
"name": "David",
"age": 5,
"school": {
"name": "Highschool",
"location": "AZ"
}
}
我想只传递给客户端名称&年龄,而不是"学校"。有简单的方法吗?
您可以将JSON解析为JObject
,然后将所有"简单"属性(即那些不是对象和数组的属性)复制到新的JObject
。然后从副本中获取新的JSON。
例如:
string json = @"
{
""name"": ""David"",
""age"": 5,
""school"": {
""name"": ""Highschool"",
""location"": ""AZ""
}
}";
JObject origObj = JObject.Parse(json);
JObject copyObj = new JObject();
foreach (JProperty prop in origObj.Properties())
{
if (prop.Value.Type != JTokenType.Object &&
prop.Value.Type != JTokenType.Array)
{
copyObj.Add(prop.Name, prop.Value);
}
}
json = copyObj.ToString();
Console.WriteLine(json);
以上将输出以下内容:
{
"name": "David",
"age": 5
}