gpt4 book ai didi

java - JsonNode Null JsonArray 解析器

转载 作者:行者123 更新时间:2023-12-04 03:24:17 25 4
gpt4 key购买 nike

我有一个 JsonNode 响应 ( unirest ),我想使用 JSON Parser 对其进行解析。

现在,假设结构有点像这样:

{
"expand" : "names",
"customfield_1" : null,
"customfield_2" : [ { "email":"123@gmail.com"},{...}]
}

所以,问题是 customfield_1 是一个 JsonArray,有时它可以为 null。

所以,一旦我使用

JSONArray myArr = myObj.getJSONArray("customfield_1")

我收到以下错误:

org.json.JSONException: JSONObject["customfield_1"] is not a JSONArray.

我尝试更改为 JsonObject 和 JsonString,但它们也无济于事。如何避免?

最佳答案

您可以在获取数组之前显式检查该字段是否为null:

JSONArray myArr = myObj.isNull("field") ? null : myObj.getJSONArray("field");

使用您的数据完成示例:

String jsonString = "{\n" +
"\"expand\" : \"names\",\n" +
"\"customfield_1\" : null,\n" +
"\"customfield_2\" : [ { \"email\":\"123@gmail.com\"},{ \"email\":\"abc@gmail.com\"}]\n" +
"}";

JSONObject myObj = new JSONObject(jsonString);
JSONArray myArr1 = myObj.isNull("customfield_1") ? null : myObj.getJSONArray("customfield_1");
JSONArray myArr2 = myObj.isNull("customfield_2") ? null : myObj.getJSONArray("customfield_2");

System.out.println(myArr1);
System.out.println(myArr2);

输出:

null
[{"email":"123@gmail.com"},{"email":"abc@gmail.com"}]

关于java - JsonNode Null JsonArray 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67899622/

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