我正在为Android构建一个应用程序。
我触发和HTTP GET请求,此请求返回一个JSONObject。我想按键检索值。但这不能正常工作。
这是我收到的名为obj的JSONObject:
{"id":1,"name":"math","description":"This is a math course."}
如果我记录Log.d("title", String.valueOf(obj.has("name")));
,这将导致为真。
这适用于JSONObject中的所有键。
但是,如果我想收到这个名字并这样做:
Log.d("title", obj.getString("name"));
我将得到一个未处理的异常:org.json.JSONException。
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
也许你应该尝试这样的事情:
Log.d(" title",obj.name);
答案 1 :(得分:0)
var obj = $.parseJSON('{"id":1,"name":"math","description":"This is a math course."}');
alert(obj['name']);
试试这个:)如果你没有使用jquery,你可以使用$ .parseJSON的JSON.parse。以下是Java
String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}";
JSONObject jObject = new JSONObject(s);
JSONObject menu = jObject.getJSONObject("menu");
Map<String,String> map = new HashMap<String,String>();
Iterator iter = menu.keys();
while(iter.hasNext()){
String key = (String)iter.next();
String value = menu.getString(key);
map.put(key,value);
}
答案 2 :(得分:0)
{}之间的所有内容都构成了数组的一部分,因此您首先需要获得这样的JSONArray:
JSONArray myJSONArray = obj.getJSONArray();
然后您可以使用以下命令访问字段值:
myJSONArray.getString(&#34; name&#34;)等......
在Google上搜索如何使用JSONArray。