【问题标题】:How to know if there are other paths than a given path?如何知道除了给定路径之外是否还有其他路径?
【发布时间】:2021-12-08 21:09:29
【问题描述】:

是否有可能通过 JSONPath 知道 其他“路径”存在?

现有的“路径”是指格式为“a.b.c”或“a.b.d”的字符串,例如此 JSON:

{
  'a' : {
      'b' : [ { 'c' : 0 }, { 'd': 1 ]
  } 
 }

是否可以编写 JSONPath 来判断除了 a.b.c 和 a.b.d 是否还有 other “路径”?

例如在下面的JSON中,应该发现有属性'e':

{
  'a' : {
      'b' : [ { 'c' : 0 }, { 'd': 1 ],
      'e': 2
  } 
 }

【问题讨论】:

  • 两个 json 都无效。请编辑帖子以包含有效的 json。
  • 我不太确定您想要实现什么,但如果这变得更复杂,您可能需要考虑 JSON 模式验证。这是一个例子:json-schema.org/learn/miscellaneous-examples.html

标签: jsonpath json-path-expression


【解决方案1】:

这取决于 JSONPath 的实现。 jsonpath 选项具有输出路径或值的设置。

JSONPATH

 $..*

所有可能的输出路径

[
  "$['a']",
  "$['a']['b']",
  "$['a']['e']",
  "$['a']['b'][0]",
  "$['a']['b'][1]",
  "$['a']['b'][0]['c']",
  "$['a']['b'][1]['d']"
] 

工具:https://jsonpath.com/ 复选框选项:输出路径

工具:https://jsonpath.herokuapp.com/ 复选框选项:规范化路径表达式

【讨论】:

  • $['a']['e'] 等价于$.a.e
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 2012-06-24
  • 2014-03-09
相关资源
最近更新 更多