gpt4 book ai didi

java - 调用 org.json.JSONObject.getJSONArray 时出现奇怪的行为

转载 作者:行者123 更新时间:2023-12-01 07:14:39 25 4
gpt4 key购买 nike

嘿,我在调用 getJSONArray 时注意到这种非常奇怪的行为。这是我的代码:

 JSONObject jsonObject = new JSONObject(data);
if (!jsonObject.getJSONObject("transfer").has("skill"))
return Collections.emptyList();
JSONArray events = jsonObject.getJSONObject("transfer").getJSONArray("skill");

现在,只要转移有超过 1 个技能元素,一切都会很好,但是当只有 1 个技能元素时,我会遇到异常:

Caused by: org.json.JSONException: Value {"id":"2","name":"DOGS"} at skill of type org.json.JSONObject cannot be converted to JSONArray at org.json.JSON.typeMismatch(JSON.java:96) at org.json.JSONObject.getJSONArray(JSONObject.java:548) ....

这有道理吗?我真的必须捕获异常并处理这种特定于数组的异常吗?

谢谢,乌迪

最佳答案

每当您检索 JSON 对象时,都会用 try/catch block 包围您的代码。这样,当您获得任何意外的 JSON 对象时,您的程序将继续运行。

至于您的错误,当只有一项时,您的 JSONArray“技能”似乎没有存储为数组。如果您使用 Web 服务创建 JSON 对象,则问题可能出在 Web 服务中。

关于java - 调用 org.json.JSONObject.getJSONArray 时出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5745290/

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