如何在没有 JSON 数组的情况下解析 JSON 数据?
Posted
技术标签:
【中文标题】如何在没有 JSON 数组的情况下解析 JSON 数据?【英文标题】:How To parse JSON data without JSON array? 【发布时间】:2018-06-02 20:16:51 【问题描述】:以下是 JSON 链接
"AF":
"country_name": "Afghanistan",
"dialling_code": "+93"
,
"AL":
"country_name": "Albania",
"dialling_code": "+355"
,
"DZ":
"country_name": "Algeria",
"dialling_code": "+213"
,
从上面的 JSON 链接,我尝试使用下面的代码从 JSON 中检索数据。
try
jsonObject = new JSONObject(JSON_STRING);
countryname = jsonObject.getString("country_name");
dialingcode = jsonObject.getString("dialling_code");
Log.d("COUNTRYNAME", countryname);
Log.d("DIALER_CODE", dialingcode);
catch (JSONException e1)
e1.printStackTrace();
【问题讨论】:
【参考方案1】:您可以从 JSONObject
获取 Keys
并迭代键。下面是一个例子。
private void parse(String jsonString)
try
JSONObject resObject = new JSONObject(jsonString);
Iterator<String> iterator = resObject.keys();
while (iterator.hasNext())
String key = iterator.next();// key can be used as Country code
JSONObject data = resObject.getJSONObject(key);
String country_name = data.getString("country_name");
String dialling_code = data.getString("dialling_code");
catch (Exception e)
【讨论】:
【参考方案2】:试试这个
try
JSONObject jsonObject = new JSONObject("your json response");
Iterator iteratorObj = jsonObject.keys();
while (iteratorObj.hasNext())
String JsonObjCountryCode = (String)iteratorObj.next();
Log.i("Country Code key", JsonObjCountryCode);
JSONObject jo_code = jsonObject.getJSONObject(JsonObjCountryCode);
Iterator<String> keys = jo_code.keys();
while (keys.hasNext())
String key = keys.next();
String value = jo_code.getString(key);
Log.i("country_name value", value);
catch (JSONException e)
e.printStackTrace();
【讨论】:
【参考方案3】:您可以将所有键提取到 List 或 ArrayList 中,然后循环此 ArrayList 以获取每个 JSON 键的详细信息。
jsonObject = new JSONObject(JSON_STRING);
Iterator keys= jsonObject .keys();
while(keys.hasNext())
String key = (String) keys.next();
JSONObject data = resObject.getJSONObject(key);
String country_name = data.getString("country_name");
String dialling_code = data.getString("dialling_code");
【讨论】:
以上是关于如何在没有 JSON 数组的情况下解析 JSON 数据?的主要内容,如果未能解决你的问题,请参考以下文章
Ajax 将带有两个数组的 JSON 对象发送到一个 servlet 并在没有 jQuery 的情况下在 java servlet 中解析