【发布时间】:2021-11-01 14:27:18
【问题描述】:
我无法使用 Android Studio 检索“callingCodes”数组中的值。我的代码似乎正确,但我仍然有错误消息。
这是json文件:
[
{
"isoName": "AF",
"name": "Afghanistan",
"currencyCode": "AFN",
"currencyName": "Afghan Afghani",
"currencySymbol": "؋",
"flag": "https://s3.amazonaws.com/rld-flags/af.svg",
"callingCodes": [
"+93"
]
},
{
"isoName": "AL",
"name": "Albania",
"currencyCode": "ALL",
"currencyName": "Albanian Lek",
"currencySymbol": "Lek",
"flag": "https://s3.amazonaws.com/rld-flags/al.svg",
"callingCodes": [
"+355"
]
},
{
"isoName": "DZ",
"name": "Algeria",
"currencyCode": "DZD",
"currencyName": "Algerian Dinar",
"currencySymbol": "د.ج.",
"flag": "https://s3.amazonaws.com/rld-flags/dz.svg",
"callingCodes": [
"+213"
]
}
]
这是我的 java android studio 代码:
JSONArray jsonArray = new JSONArray(response);
for(int i = 0; i < jsonArray.length(); i++){
JSONObject data = jsonArray.getJSONObject(i);
String call = (String) data.getJSONArray("callingCodes").get(0);
countryOperatorList.add(new CountryOperator(
data.getString("isoName"),
data.getString("name"),
data.getString("currencyCode"),
data.getString("currencyName"),
data.getString("currencySymbol"),
data.getString("flag"),
call
));
}
我尝试将键“callingCode”转换为字符串,但它返回为 ["+93"] 但我只想恢复 '+93'。
但是当我尝试上面的代码时,我收到了这个错误消息:
W/System.err: org.json.JSONException: Index 0 out of range [0..0)
这行代码抛出了什么:
String call = (String) data.getJSONArray("callingCodes").get(0);
有没有人有解决方案,以便我可以检索到调用代码键的值。
谢谢!
【问题讨论】: