2

json_extract 如何用于查看数组中的所有对象?如果您知道密钥,它会起作用,但我想查看每个对象并找到匹配的对象。

$.features[0].properties.TMPRIV_ID

如何让它工作?

$.features[*].properties.TMPRIV_ID
4

1 回答 1

6

你已经用 MySQL 和 Sqlite 标记了这个,所以我要掷硬币并给出 Sqlite 的答案。

基本上,您需要从json_each()行值函数中进行选择以迭代数组的每个元素,并使用 where 子句过滤您想要的内容(这就是json_extract()发挥作用的地方):

sqlite> SELECT value FROM
  json_each('[{"name":"cat","type":"mammal"},{"name":"parrot","type":"bird"},{"name":"dog","type":"mammal"}]')
  WHERE json_extract(value, '$.type') = 'mammal';
value                         
------------------------------
{"name":"cat","type":"mammal"}
{"name":"dog","type":"mammal"}

如果您希望将结果作为 JSON 数组而不是一组行,请使用json_group_array()聚合函数:SELECT json_group_array(value) FROM ...

于 2018-08-02T06:18:14.320 回答