Fre*_*dy. 1 c# linq json json.net
我有一些 JSON,如下所示。我想从中获取“类型”为“项目”的所有对象。
string json = @"
{
'name': 'Object 1',
'content': {
'body': {
'id': 'body',
'type': 'Body'
},
'style': {
'id': 'style',
'type': 'Style'
},
'DynamicName-123': {
'id': 'DynamicName-123',
'type': 'Row'
},
'DynamicName-434': {
'id': 'DynamicName-434',
'type': 'Column'
},
'DynamicName-223': {
'id': 'DynamicName-223',
'type': 'Item'
}
}
}";
JObject obj = JObject.Parse(json);
Run Code Online (Sandbox Code Playgroud)
预期输出:
'id': 'DynamicName-223',
'type': 'Item'
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
您可以使用LINQ-to-JSON查询获取“type”属性值为“Item”的对象,如下所示:
JObject obj = JObject.Parse(json);
List<JObject> items = obj["content"]
.Children<JProperty>()
.Where(p => (string)p.Value["type"] == "Item")
.Select(p => (JObject)p.Value)
.ToList();
Run Code Online (Sandbox Code Playgroud)
小提琴: https: //dotnetfiddle.net/dy1nQC