Android不解析JSON数组
我目前正试图在代码中解析JSON数组,但问题是它从未进入try块 这是我的密码:Android不解析JSON数组,android,json,parsing,Android,Json,Parsing,我目前正试图在代码中解析JSON数组,但问题是它从未进入try块 这是我的密码: protected Void doInBackground(Void... arg0) { JsonParser jsonParser = new JsonParser(); String json = jsonParser.getJSONFromUrl("http://hills.ccsf.edu/~jpark41/ViB/sample.json"); i
protected Void doInBackground(Void... arg0) {
JsonParser jsonParser = new JsonParser();
String json = jsonParser.getJSONFromUrl("http://hills.ccsf.edu/~jpark41/ViB/sample.json");
if(json != null) {
Log.i("JSON: ", "NOT NULL"); // This log executes!!
try
{
Log.i("we: ", " out here"); // This does not!!
JSONObject jObj = new JSONObject(json);
JSONArray jsar = new JSONArray(json);
Iterator<String> iter = jObj.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
JSONObject value = (JSONObject)jObj.get(key);
id = value.getString("id");
thumb = value.getString("thumb");
media = value.getString("media");
title = value.getString("title");
} catch (JSONException e) {
// Something went wrong!
}
now_playing = id;
earned = title;
}
} catch (JSONException e) {
Log.i("we NOT: ", " out here");
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
受保护的Void doInBackground(Void…arg0){
JsonParser JsonParser=新的JsonParser();
字符串json=jsonParser.getJSONFromUrl(“http://hills.ccsf.edu/~jpark41/ViB/sample.json”);
if(json!=null){
Log.i(“JSON:,“NOTNULL”);//此日志将执行!!
尝试
{
Log.i(“我们:,“在这里”);//这不是!!
JSONObject jObj=新的JSONObject(json);
JSONArray jsar=新的JSONArray(json);
迭代器iter=jObj.keys();
while(iter.hasNext()){
String key=iter.next();
试一试{
JSONObject值=(JSONObject)jObj.get(key);
id=value.getString(“id”);
thumb=value.getString(“thumb”);
媒体=value.getString(“媒体”);
title=value.getString(“title”);
}捕获(JSONException e){
//出了点问题!
}
现在_playing=id;
挣得=头衔;
}
}捕获(JSONException e){
Log.i(“我们不是:,“在这里”);
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
返回null;
}
“我们在这里”从未被记录,只有“我们不在这里”。为什么try块从不执行?我没有太多使用android解析JSON的经验,所以我肯定我遗漏了一些东西。谢谢你的帮助。当我注释掉JSONObject jObj=newjsonobject(json);并将迭代器替换为基本的for循环,这一切都起作用了。谢谢大家的帮助。堆栈跟踪是什么?如果打印“我们不在这里”,则会引发异常。堆栈跟踪将有助于识别问题。您是否尝试在调试器中单步执行它?我的假设是
getJSONFromURL
失败或返回null。如果您使用框架将Json解析为POJO,您将省去很多麻烦。查看Gson或Jackson,请发布您的logcat输出。