JSONObject obj = new JSONObject();
obj.put("weather", "[{'id: 300,'main': 'Drizzle','description': 'light intensity drizzle','icon': '09d'}]");
JSONArray arr = obj.getJSONArray("weather");
JSONObject obj2 = arr.getJSONObject(0);
上面是我的JSON数据,我试图提取所有字段(id,main,毛毛雨等),但当我尝试Log.d时,根JSON对象内的JSONArray是空的。
答案 0 :(得分:0)
答案 1 :(得分:0)
试试这个就可以忘记一个'id
JSONObject obj = new JSONObject();
try {
JSONArray Jarr=new JSONArray("[{'id': 300,'main': 'Drizzle','description': 'light intensity drizzle','icon': '09d'}]");
obj.put("weather",(Object)Jarr);
JSONArray arr = obj.getJSONArray("weather");
JSONObject obj2 = arr.getJSONObject(0);
} catch (JSONException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
首先你忘了把结束单引号用于id:
"[{'id': 300,'main': 'Drizzle','description': 'light intensity drizzle','icon': '09d'}]".
第二,当你使用“obj.put(”name“,”...“}”时,JSONObject将值作为字符串获取其他任何内容。如果你想使用obj.put(Json数组值),你应该转换(字符串值)为(json数组值)befor使用On“obj.put”:
String valueString="[{'id': 300,'main': 'Drizzle','description': 'light intensity drizzle','icon': '09d'}]";
JSONArray valueJsonArray=new JSONArray(valueString);
obj.put("weather",valueJsonArray);