我希望编写一些 C#,它允许客户端提供 JSON 字符串和查询字符串。然后,查询字符串将用于寻址 JSON 对象中的值。例如,如果我有这个 JSON:{ "head": "big", "fingers": [ "one", "thumb", "two", "ring" ], "arm": { "elbow", "locked" }}这个查询字符串:"fingers.two"我想返回该值"ring"。这(或类似的东西)在 C# 中可能吗?我尝试过使用该类ExpandoObject,但这不允许动态运行时检查:var json = JsonConvert.DeserializeObject<ExpandoObject>(jsonStr);据我所知,变量值的发现json需要在代码时而不是运行时完成,这意味着我无法动态找到正在查询的值。
1 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
JSONPath 就是这样做的
假设以下 JSON(修复了原始中的一些语法错误)
{
"head": "big",
"fingers": {
"one":"thumb",
"two":"ring"
},
"arm": {
"elbow": "locked"
}
}
还有这个查询
MyJObjectOrToken.SelectToken("fingers.two")
您将得到以下输出:
[
"ring"
]
使用 JSON.Net 方法将值提取为字符串并将结果返回给用户应该很简单。
JSON.Net 内置了对 JSONPath 的支持
- 1 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消