2013-08-16 107 views
0

从json文件解析数组时,图像不会显示。 JSONArray school2 = school.getJSONArray("contains");中的值不显示在屏幕上,我是否使用正确的方法?解析json文件不显示数据

我正在调试此阶段显示的值:Category_name.add(object.getString("name"));调试告诉我有必要为数组中的每个元素提供id。

{ 
    "status":1, 
    "message":"", 
    "data": 
    { 
    "entree": 
    { 
     "id":32, 
     "name":"Cheese Burger", 
     "description":"Lorem ipsum d dolore.", 
     "image":"http:\/\/198.57.208.46\/~school\/images\/android\/cheese-burger.png", 
     "contains": 
     [ 
     { 
      "name":"Cheese", 
      "image":"http:\/\/198.57.208.46\/~school\/images\/android\/cheese1.png" 
     }, 
     { 
      "name":"Tomato", 
      "image":"http:\/\/198.57.208.46\/~school\/images\/android\/tomato.png" 
     }, 
     { 
      "name":"Bread", 
      "image":"http:\/\/198.57.208.46\/~school\/images\/android\/bread.png" 
     } 
     ], 
    "nutritions": 
    { 
     "Calories":"150", 
     "Carbohidrates":"16g" 
    } 
    } 
} 





JSONObject json = new JSONObject(str); 
JSONObject json2 = new JSONObject(str); 
message = json2.getString("message"); 
status = json2.getString("status"); 

if (status.equals("1")) {   
    JSONObject data = json.getJSONObject("data"); 
    JSONObject school = data.getJSONObject("entree"); 
    txt1.setText(school.getString("name")); 
    // txt2.setText(school.getString("name")); 
    txt3.setText(school.getString("description")); 
    String url1 = school.getString("image"); 

    imgLoader.DisplayImage(url1, img1); 
    JSONArray school2 = school.getJSONArray("contains"); 


    for (int i = 0; i < school.length(); i++) { 
    JSONObject object = school2.getJSONObject(i); 
    \\Category_ID.add(Long.parseLong(object.getString("id"))); 
    Category_name.add(object.getString("name")); 
    Category_image.add(object.getString("image")); 
    listview.setAdapter(cla); 
    } 
} 
+0

为什么不使用GSON,它是来自谷歌的sim官方。我只是给你提个建议。这比手动解析要好。 – TeeTracker

+0

确保图像存在于服务器上。尝试在浏览器中粘贴url –

+1

我建议您使用Jackson JSON或GSON解析库并将POJO反序列化为。 –

回答

0

我无法找到您为ImageView设置Image的位置。

我认为图像没有显示,因为您设置图像的方式失败。

当你从一个链接得到的图像:(例如:http://domain.com/image.jpg

你应该沿着时间需要得到它。

请使用AsyncTask线程来做到这一点。当您从您的链接下载完成的图像,你会通知MainThread将更新UI(在这种情况下,设置图片为ImageView的)

P/S:得到URL图像后,你可以解析到位图