c# - 如何仅动态解析部分 JSON
问题描述
我有下一个问题:我收到了很多不同格式的 JSON。我只需要处理这些文件的一部分。我尝试使用 Newtonsoft.Json.Schema nuget,但遇到了下一个问题:
JSON 如何不解析附加属性
当我们不知道这个 json 的结构时,你能建议我一些方法来解析 JSON 文档的一部分吗?我们可以存储文档的一些模式。
示例:
我们有下一个 JSON 文档。
而这里我们需要处理,例如,只有name
和age
属性。而且我只会在运行时知道这些属性。
{
'name': 'James',
'age': 29,
'salary': 9000.01,
'jobTitle': 'Junior Vice President'
}
解决方案
如果您的 json 不包含嵌套字段,因此每个顶级字段都是原始类型(不是对象),那么您可以Dictionary<string, object>
像这样反序列化它:
var fieldValueMap = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
string fieldName = "name";
Console.WriteLine(fieldValueMap.ContainsKey(fieldName)
? fieldValueMap[fieldName]
: "There is no such field");
推荐阅读
- python - 带有 Flask-Ask 意图的 Python 定义和参数
- unity3d - 使用内部大脑进行预训练网络的 Unity 机器学习导致崩溃
- progressive-web-apps - Angular6 ServiceWorker 不缓存所有文件
- javascript - 最小化 if-else 条件
- azure - 在服务结构应用程序中动态创建服务
- xml - 使用 OpenCV 删除 XML 节点
- django - 使用 Django 将 html5 画布加载到 PIL 图像中并将其保存在新文件中
- image - BLP 图像文件格式使用什么压缩等级?
- angular - Angular 项目 - 在本地服务器上运行良好但在 github 上运行良好
- makefile - 在编译之前运行'make'时总是运行一个脚本