json extract vs json extract scalar

nwnhqdif  于 2021-06-24  发布在  Pig
关注(0)|答案(2)|浏览(425)

我有一个json字符串,需要在其中提取一个数组。

a='{"player":{"username":"user1","partner_Name":[{"firstname":"my_first"},{"lastname":"my_last"}],"characteristics":{"race":"Human","class":"Warlock","subclass":"Dawnblade","power":300,"playercountry":"USA"}}}'
``` `JsonExtractScalar(a, '$.player.username')` 它回来了 `user1` 但我知道 `JsonExtractScalar(a, '$.player.player_Name')` 它回来了 `null` . 
同时 `JsonExtract(a, '$.player.username')` 这是回报 `[{"firstname":"my_first"},{"lastname":"my_last"}]` 我想知道它们之间有什么区别,什么时候用哪个?
czq61nw1

czq61nw11#

https://docs.aws.amazon.com/athena/latest/ug/extracting-data-from-json.html
要从json字符串中提取标量值,请使用json\u extract\u scalar函数。它类似于json\u extract,但只返回标量值(布尔值、数字或字符串)。
注意:不要在数组、Map或结构上使用json\u extract\u标量函数。

2g32fytz

2g32fytz2#

如果要提取到数组,只需使用

JSON.parse(a);

不需要做额外的努力。

相关问题