Json 提取与 Json 提取标量

Posted

技术标签:

【中文标题】Json 提取与 Json 提取标量【英文标题】:Json Extract vs Json Extract Scalar 【发布时间】: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"]

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

【问题讨论】:

【参考方案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);

不需要做额外的努力。

【讨论】:

以上是关于Json 提取与 Json 提取标量的主要内容,如果未能解决你的问题,请参考以下文章

Redshift - 使用 Python UDF 从 JSON 中提取根密钥

jmeter json提取与使用

JMeter--关联(jion提取器与边界提取器)

后置处理器----JSON提取器

数据提取之JSON与JsonPATH

jmeter中json提取器和断言器的简单用法