在 C# 中动态寻址 JSON

我希望编写一些 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需要在代码时而不是运行时完成,这意味着我无法动态找到正在查询的值。


忽然笑
浏览 136回答 1
1回答

胡子哥哥

JSONPath 就是这样做的假设以下 JSON(修复了原始中的一些语法错误){  "head": "big",  "fingers": {    "one":"thumb",    "two":"ring"  },  "arm": {    "elbow": "locked"  }}还有这个查询MyJObjectOrToken.SelectToken("fingers.two")您将得到以下输出:[    "ring"]使用 JSON.Net 方法将值提取为字符串并将结果返回给用户应该很简单。JSON.Net 内置了对 JSONPath 的支持
打开App,查看更多内容
随时随地看视频慕课网APP