gpt4 book ai didi

java - 使用 Jackson 读取具有空或空白字段的 JSON 数组

转载 作者:行者123 更新时间:2023-11-30 02:41:21 26 4
gpt4 key购买 nike

我正在使用Jackson解析如下所示的 jsonString:

{
"key": "Flowers",
"colorized": true,
"values": [
[1472428800000, , "#aaaaaa", "", ""], //empty or blank field
[1472515200000, , "#bbbbbb", "", ""], //empty or blank field
[1472601600000, , "#cccccc", "", ""], //empty or blank field
[1472688000000, 1, "#dddddd", "", ""], //field not empty or blank anymore
[1472774400000, 2, "#eeeeee", "", ""],
[1472860800000, 3, "#ffffff", "", ""],
[1472947200000, 4, "#aaaaaa", "", ""]
]
}

当我使用 JsonNode jsonNode = mapper.readTree(jsonString) Jackson 抛出异常:

com.fasterxml.jackson.core.JsonParseException: 
Unexpected character (',' (code 44)):
expected a valid value (number, String, array, object, 'true', 'false' or 'null')

在我看来,这是因为空白字段。在网络上搜索仅产生 null、[] 或 {} 字段的解决方案,但并非完全空白。

问题:如何才能让 Jackson 解析字符串并将这些空字段视为 ""null

编辑1:

我用过

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>

过去,在 jsonString 上使用该库调用 new JSONObject(jsonString) 效果很好。我想把注意力集中在 jackson 身上,摆脱因为表演而产生的依赖。我确信 jackson 也能够以某种方式处理它。

最佳答案

您可以使用此配置获得所需的行为:

mapper.enable(JsonParser.Feature.ALLOW_MISSING_VALUES);

根据Jackson docs :

ALLOW_MISSING_VALUES
Feature allows the support for "missing" values in a JSON array: missing value meaning sequence of two commas, without value in-between but only optional white space

缺失值在 JsonNode 中显示为 null

关于java - 使用 Jackson 读取具有空或空白字段的 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41601613/

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