gpt4 book ai didi

mysql - 提取计算出的 JSONpath 响应的第一个元素

转载 作者:行者123 更新时间:2023-11-29 10:00:35 34 4
gpt4 key购买 nike

如果我有以下 JSON 数据:

{
"providers": {
"abc": {
"provider": "foo",
"token": "abc123"
},
"def": {
"provider": "bar",
"token": "def567"
}
}
}

我想找到一个返回“第一个”提供者 token 的 JSON 路径,即 abc123。问题在于找到“第一个”,因为 providers 是一个对象,而不是一个数组。

我想我可以从 $.providers.* 开始,它返回以下数组:

[
{
"provider": "foo",
"token": "abc123"
},
{
"provider": "bar",
"token": "def567"
}
]

但我似乎无法对该数组执行任何操作。例如$.providers.*[0] 不起作用。

我所要求的可能吗? (如果重要的话,我正在使用 MySQL,尽管我正在寻找通用的 JSONPath 解决方案。)

最佳答案

您需要使用提供的表/子查询来解析出您需要的部分。

Yes, except I don't know that abc is the first provider.

这会解析出第一个提供者元素..

查询

SELECT 
*
, records_json_array.json_array->'$[0].token'
FROM (

SELECT
records.json->'$.providers.*' AS json_array
FROM (

SELECT
'{
"providers": {
"abc": {
"provider": "foo",
"token": "abc123"
},
"def": {
"provider": "bar",
"token": "def567"
}
}
}' AS json
FROM
DUAL
) AS records

) AS records_json_array

结果

| json_array                                                                       | records_json_array.json_array->'$[0].token' |
| -------------------------------------------------------------------------------- | ---------------------------------------------- |
| [{"token": "abc123", "provider": "foo"}, {"token": "def567", "provider": "bar"}] | "abc123" |

demo

关于mysql - 提取计算出的 JSONpath 响应的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070087/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com