gpt4 book ai didi

java - 帮助使用 JSON 解析 Yahoo 搜索结果 Not a JsonArray exception

转载 作者:行者123 更新时间:2023-11-30 11:55:39 24 4
gpt4 key购买 nike

我已经阅读了很多帖子,但仍然无法找到或理解如何处理可以有 1 个结果或结果数组的结果集。 (来自雅虎搜索)

如果收到多个结果,我可以完美地解析结果,但是当只有 1 个搜索结果时,我得到 JSONException:blahblahbalh 不是 JSONArray。

JSONArray results = resultObject.getJSONArray("Result");

当有多个结果时工作正常,但是当 Yahoo 查询仅返回 1 个结果时,我如何强制内置 JSON 解析器接受它作为结果?

这个单一结果无法解析为 JSON 数组:

{
"ResultSet": {
"totalResultsAvailable": "108",
"totalResultsReturned": "1",
"firstResultPosition": "1",
"ResultSetMapUrl": "http:\/\/maps.yahoo.com\/broadband\/?q1=Virginia+Beach%2C+VA+23454-4608tt=mexicantp=1",
"Result": {
"id": "12811175",

}
}
}

但这可以很好地解析为 JSONArray:

    {
"ResultSet": {
"totalResultsAvailable": "108",
"totalResultsReturned": "2",
"firstResultPosition": "1",
"ResultSetMapUrl": "http:\/\/maps.yahoo.com\/broadband\/?q1=Virginia+Beach%2C+VA+23454-4608tt=mexicantp=1",
"Result": [
{
"id": "12811175",

},
{
"id": "12814560",
}
]
}
}

对不起,如果我在胡言乱语,但我无法弄清楚如何从第一个结果示例中获得长度为 1 的 JSONArray,这让我发疯。

非常感谢!

最佳答案

这是使用 JSOn 的问题之一。如果有两个对象,则将其视为 JSONArray,否则将其视为 JSONObject。

据我所知,您只需假设它可能是其中之一并相应地进行编码。您可以将杂乱的细节包装在辅助函数中,例如:

 JSONArray getArrayOrObject(JSONObject parent, String name) {
JSONArray results = parent.optJSONArray(name);
if (results == null) {
results = new JSONArray();
JSONObject object = parent.optJSONObject("Result");
if (object != null) {
results.put(object);
}
}
return results;
}

关于java - 帮助使用 JSON 解析 Yahoo 搜索结果 Not a JsonArray exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877574/

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