c# - 如何搜索 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
}
}
解决方案
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);
}
}
推荐阅读
- ios - Flutter 构建 iOS
- python - 在python3中更改方法的属性
- python - Django - 装饰器限制“员工”
- c# - 无法将数据从视图传递到控制器 ASP.NET MVC 5
- netbeans - 从 Apache Ant 构建 Netbeans
- html - 如何在 display:flex 结构中的其他 2 个项目之间水平对齐文本?
- algorithm - 在无向图中查找关键连接(桥梁)。我的方法不是线性时间吗?
- php - PHP错误:未加括号的`a?乙:丙?d : e` 已弃用。使用 `(a ? b : c) ? d:e`或`a?b : (c ? d : e)`
- sql - 查找交易列表的新日期
- image - 如何在 TI-84 图形计算器上显示黑白像素图像(非 CE 版本)