首页 > 解决方案 > 如何搜索 json 文件 C#?

问题描述

所以我有一个 json 文件,我正在尝试创建一个输入 ID 的方法(第一个 ID 是 2,第二个是 6 等),它会返回 C# 中的名称。谢谢!

我正在使用 Newtonsoft.json 库

 {
"2": {
"name": "Cannonball",
"store": 5
},
"6": {
"name": "Cannon base",
"store": 187500
},
"8": {
"name": "Cannon stand",
"store": 187500
}
}  

标签: c#json

解决方案


Newtonsoft 库没有搜索 API。您必须先反序列化 json,然后搜索结果对象。有大约一百万种不同的方法可以做到这一点(JObjects、字典、Linq...)。下面是一个:

class Program
{
    internal class ParsedObject
    {
        public string Name;
        public string Store;
    }
    static void Main(string[] args)
    {
        string json = @"
        {
            ""2"": 
            {
                ""name"": ""Cannonball"",
                ""store"": 5
            },
            ""6"": 
            {
                ""name"": ""Cannon base"",
                ""store"": 187500
            },
            ""8"": 
            {
                ""name"": ""Cannon stand"",
                ""store"": 187500
            }
        }";

        var jsonDeserialized = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, ParsedObject>>(json);

        Console.WriteLine(jsonDeserialized["2"].Name);

    }
}

推荐阅读