【问题标题】:Json Extract vs Json Extract ScalarJson 提取与 Json 提取标量
【发布时间】:2019-01-21 05:53:11
【问题描述】:

我有一个 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"}]

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

【问题讨论】:

    标签: arrays json hive apache-pig


    【解决方案1】:

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

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

    注意:不要对数组、映射或结构使用 json_extract_scalar 函数。

    【讨论】:

      【解决方案2】:

      如果你想提取到一个数组,那么只需使用

      JSON.parse(a);
      

      不需要做额外的努力。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多