包含属性或值的 json 对象的路径
Posted
技术标签:
【中文标题】包含属性或值的 json 对象的路径【英文标题】:Path to json object which contains an attribute or value 【发布时间】:2021-11-14 07:13:01 【问题描述】:我有以下 json 数组...
[
"class":"Identity", "id":5, "type":6 ,
"class":"Combat", "damage":10.0 ,
.
.
.
]
or
[
"class":"Combat", "damage":10.0 ,,
"class":"Identity", "id":5, "type":6
.
.
.
]
我不知道它的确切路径,因为它不是确定性的。
我试过这个select json_search('one', "Identity") from...
,但它只返回$[0].class
,它指的是属性的路径,而不是json对象本身的路径......这只是$[0]
。这是我想要接收的路径...
【问题讨论】:
【参考方案1】:我测试过:
mysql> set @j = '...your json example...';
mysql> select substring_index(json_unquote(json_search(@j, 'one', 'Identity')), '.', 1) as obj;
+------+
| obj |
+------+
| $[1] |
+------+
当您想使用 SQL 表达式搜索 JSON 的特定子字段时,以 JSON 格式存储数据总是比以正常方式存储数据更难。
【讨论】:
非常感谢...比我想象的要容易:D 我希望有一个内置函数可以包含这三个语句... 那么你将如何区分这个 JSON 对象和另一个具有值 'Identity' 但不在 'class' 字段中的 JSON 对象? 这永远不会发生 :) 每个“对象”只是纯数据,不会包含对其他 json 对象的引用......并且每个 json 对象每个数组只存在一次 当它确实发生时记住这个对话。 :-) 我会 :D 以防万一我可以检查属性是否适合...以上是关于包含属性或值的 json 对象的路径的主要内容,如果未能解决你的问题,请参考以下文章
JS reduceRight 导致数组成为对象,我该如何修复逻辑?