C# 使用json.net查询JArray的项属性值

C# 使用json.net查询JArray的项属性值,c#,linq,json.net,C#,Linq,Json.net,我的jsonarray有一个带有Id和Name属性的序列化产品列表 JArray jsonarray = JArray.Parse(json); var name = // Get value for Name property which has Id 1. 我该怎么做 JArray jsonarray = JArray.Parse(json); var name = (string)jsonarray.Children().Single( p => (int)p["Id

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

JArray jsonarray  = JArray.Parse(json);

var name = // Get value for Name property which has Id 1.
我该怎么做

 JArray jsonarray  = JArray.Parse(json);  
 var name = (string)jsonarray.Children().Single( p => (int)p["Id"] == 1)["Name"];

Single

捕获可能的
无效操作异常
,您可以尝试使用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");
JArray jsonarray=JArray.Parse([{'Id':3,'Name':'Product3'},{'Id':1,'Name':'Product1'},{'Id':2,'Name':'Product2'}]);
var name=jsonarray
.FirstOrDefault(x=>x.Value(“Id”)==1)
.价值(“名称”);
请注意,您应该执行null检查,因为如果未找到属性为
Id==1的元素,则
FirstOrDefault
可能返回null