使用json.net查询JArray的item`s属性的值

Eli*_*eth 4 c# linq json.net

我的jsonarray有一个带有Id和Name属性的序列化产品列表.

JArray jsonarray  = JArray.Parse(json);

var name = // Get value for Name property which has Id 1.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Vik*_*tev 8

您可以尝试使用linq:

JArray jsonarray = JArray.Parse("[{'Id':3, 'Name': 'Product3'}, {'Id':1, 'Name': 'Product1'}, {'Id':2, 'Name': 'Product2'}]");

var name = jsonarray
    .FirstOrDefault(x => x.Value<int>("Id") == 1)
    .Value<string>("Name");
Run Code Online (Sandbox Code Playgroud)

请注意,您应该执行null检查,因为FirstOrDefault如果Id == 1找不到具有属性的元素,则可能返回null .