为了账号安全,请及时绑定邮箱和手机立即绑定

在 C# 中动态寻址 JSON

在 C# 中动态寻址 JSON

C#
忽然笑 2023-08-13 16:18:24
我希望编写一些 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 的支持

查看完整回答
反对 回复 2023-08-13
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信