奇怪的json空指针
我有这样一个奇怪的错误: 我试图解析来自url的json对象。这完美的作品,例如这是JSON数据:奇怪的json空指针
{"type":"result","rid":"djoezradio",
"data":[{
"title":"Webradio",
"song":"Test",
"track":{
"artist":"Test",
"title":"Test",
"album":"",
"Test":422,
"id":423,
"playlist":{
"id":14,"title":"reggae"
},
"imageurl":"http:\/\/example.com\/static\/example\/covers\/nocover.png"},
"bitrate":"128 Kbps",
"server":"Online","autodj":"Online","source":"Yes","offline":false","listeners":1,
"maxlisteners":500,"reseller":0,"serverstate":true,"sourcestate":true,
"sourceconn":true,"date":"Dec 14, 2013",
"time":"02:13 PM","url":"http:\/\/example.com\/"}]}
这是我的代码:
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI("http://example.com"));
HttpResponse response;
try {
response = client.execute(request);
BufferedReader in = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
String line = "";
while ((line = in.readLine()) != null) {
JSONObject jObject = new JSONObject(line);
String temp = jObject.getString("imageurl");
Log.e("rid",temp);
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
当我做的getString(“播放列表”)为例,它只是运行良好,它会返回编号:14等 不工作的唯一的东西是对象imageurl ... 当我想解析这个,它只是返回null,而它只是在那里!
任何想法? 有什么理由吗?它因为它的一个.jpeg?恳求分享,我真的陷入困境。
试试这个。
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI("http://example.com"));
HttpResponse response;
try {
response = client.execute(request);
BufferedReader in = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
StringBuilder builder = new StringBuilder();
String line;
while((line=in.readLine())!=null)
{
builder.append(line);
}
String JSONdata = builder.toString();
Log.i("JsonData",JSONdata);
JSONObject jObject = new JSONObject(JSONdata);
String temp = jObject.getString("imageurl");
Log.e("rid",temp);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
编辑
JSONObject jObject = new JSONObject(JSONdata);
JSONArray jdata = jObject.getJSONArray("data");
JSONObject job = jdata.getJSONObject(0);
JSONObject jObjt = job.getJSONObject("track");
String temp = jObjt.getString("imageurl");
Log.e("rid",temp);
thnx,但仍然可以解析任何对象,但imageurl ....仍然返回null。 Log.e(“JsonData”,JSONdata);显示整个json数组,并在其中imageurl以及...仍然想知道为什么它返回null ..虽然它不是.. :( – iLuvCode
@iLuvCode你需要从该JSON的数据是什么,也发布该响应也在log – Hariharan
我需要的唯一数据是imageurl。当我做例如log.e(rid,jObject.getString(“playlist”))它只是起作用,但是当我想对imageurl做同样的事情时,imageurl返回null,而值只是像播放列表 – iLuvCode
你确定正确张贴JSON的?它有不平衡的大括号。 – Henry