Json Extract与Json Extract标量

时间:2019-01-21 05:53:12

标签: arrays json hive apache-pig

我有一个需要提取数组的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"}]

我想了解它们之间的区别以及何时使用哪个?

2 个答案:

答案 0 :(得分:1)

https://docs.aws.amazon.com/athena/latest/ug/extracting-data-from-JSON.html

  

要从JSON字符串中提取标量值,请使用json_extract_scalar函数。它类似于json_extract,但仅返回标量值(布尔值,数字或字符串)。

     

注意:请勿在数组,地图或结构上使用json_extract_scalar函数。

答案 1 :(得分:0)

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

JSON.parse(a);

无需付出额外的努力。