如何从jsonarray解析图像并使用Picasso进行显示

时间:2016-09-09 18:06:31

标签: android json picasso

我有JSON data

我必须使用具有3个图像链接的关键字“im:image”解析JSONArray,并使用Picasso库显示它。

有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试以下

try {
    JSONObject jsonFeed = new JSONObject(your_original_json).getJSONObject("feed");
    JSONArray entries = jsonFeed.getJSONArray("entry");
    int count = entries.length();
    for (int i = 0; i < count; i++) {
        JSONObject imageJson = entries.getJSONObject(i).getJSONObject("im:image");
        // in case you want to get image with height 53
        String imageUrl = imageJson.getJSONObject("0").getString("label");

        // String imageUrl = imageJson.getJSONObject("1").getString("label"); height 75
        // String imageUrl = imageJson.getJSONObject("2").getString("label"); height 100
        Picasso.with(context)
                .load(imageUrl)
                .into(imageView);
    }
} catch (JSONException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

您必须使用HttpClient从您的URL获取Json。代码如下。

 try{

            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("https://itunes.apple.com/jo/rss/topfreeapplications/limit=50/json");
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            InputStream weps = entity.getContent();
            try {

                BufferedReader reader = new BufferedReader(new InputStreamReader(weps, "iso-8859-1"), 8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                weps.close();
                result = sb.toString();//result string defined above will store your json.

            } catch (Exception e) {
                Log.e("log_tag", "Error Coverting result" + e.toString());
            }
        } catch (Exception e) {
            Log.e("log_tag", "Error Http connection" + e.toString());
            }

        try {

            JSONArray entries = new JSONArray(result);
            int count = entries.length();
            for (int i = 0; i < count; i++) {

            JSONObject imageJson= entries.getJSONObject(i).getJSONObject("im:image");
            // in case you want to get image with height 53
            String imageUrl = imageJson.getJSONObject("0").getString("label");

            // String imageUrl = imageJson.getJSONObject("1").getString("label"); height 75
            // String imageUrl = imageJson.getJSONObject("2").getString("label"); height 100
            Picasso.with(context)//context variable of the class
            .load(imageUrl)// url from Json
            .into(imageView); //your image view object
            }
        } catch (Exception e) {
            Log.e("log_tag", "Error Parsing Dataaaa" + e.toString());

        }