所以我得到一个响应字符串:
{
"travels": [
{
"date": "2015-10-15",
"id": 5
},
{
"date": "2015-10-14",
"id": 2
}
]
}
我将其输入 JObject.Parse
以获取 JObject data
。我知道我能做到:
data.SelectToken("travels(0).date")
选择第一个元素的日期。但是我需要能够通过 id 而不是索引来选择元素,因为它不会每次都返回相同的元素。这可能吗?
最佳答案
我会创建一个类,对其进行反序列化,然后使用 LINQ 对其进行过滤:
void Main()
{
var root = JsonConvert.DeserializeObject<RootObject>(json);
var selectedTravel = root.Travels.FirstOrDefault(x => x.Id == 2);
}
public class Travel
{
[JsonProperty("date")]
public DateTime Date { get; set; }
[JsonProperty("id")]
public int Id { get; set; }
}
public class RootObject
{
public List<Travel> Travels { get; set; }
}
关于c# - 如何在 C# 中使用 Json.NET 基于值而不是索引获取数组中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33150518/