c# - 如何在 C# 中使用 Json.NET 基于值而不是索引获取数组中的元素?

标签 c# json json.net

所以我得到一个响应字符串:

{
    "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/

相关文章:

c# - 在 C# 中反序列化 json 字典数组

c# - 从 JSON 格式的字符串中检索 JSON 格式的字符串

c# - 将文件发送到打印机,没有打印任何内容

c# - 立方体内的局部坐标

json - 使用 Postman 的 NetSuite RESTlet NLAuth

javascript - 对文本内容进行过滤,并尝试将过滤后的内容转换为JSON

c# - URL 格式无法识别,我可以转换吗

c# - 捕获 Windows 窗体上的 Enter 键按下不起作用

java - 如何使用 Java 从 JSONObject 获取数据?

mysql - 正确转义 JSON 特殊字符以在 CSV 文件中使用