如何从android中的json字符串获取图像url以在图像视图中显示

时间:2016-07-18 07:17:42

标签: android html json html5 android-layout

伙计这是我的json数据:

{
  "status": "ok",
  "post": {
    "id": 8,
    "type": "post",
    "slug": "android",
    "url": "http://192.168.1.8/Android/android/wordpress/2016/07/13/android/",
    "status": "publish",
    "title": "Android",
    "title_plain": "Android",
    "content": "<p>Google&#8217;s Android is shaking up the mobile market in a big way. With Android.</p>\n<p><img class=\"alignnone size-medium wp-image-31\" src=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/51KRggHZuzL._SX355_-300x222.jpg\" alt=\"51KRggHZuzL._SX355_\" width=\"300\" height=\"222\" srcset=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/51KRggHZuzL._SX355_-300x222.jpg 300w, http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/51KRggHZuzL._SX355_.jpg 355w\" sizes=\"(max-width: 300px) 85vw, 300px\" /> <img class=\"alignnone size-medium wp-image-12\" src=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/CV2iAeMXIAAQlZH-300x232.png\" alt=\"moto\" width=\"300\" height=\"232\" srcset=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/CV2iAeMXIAAQlZH-300x232.png 300w, http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/CV2iAeMXIAAQlZH.png 600w\" sizes=\"(max-width: 300px) 85vw, 300px\" /></p>\n",
    "excerpt": "<p>Google&#8217;s Android is shaking up the mobile market in a big way. With Android.  </p>\n",
    "date": "2016-07-13 06:12:00",
    "modified": "2016-07-18 07:12:39"
  }
}

在内容数据中我得到的字符串如下:

<p>Google&#8217;s Android is shaking up the mobile market in a big way. With Android.</p>\n<p><img class=\"alignnone size-medium wp-image-31\" src=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/51KRggHZuzL._SX355_-300x222.jpg\" alt=\"51KRggHZuzL._SX355_\" width=\"300\" height=\"222\" srcset=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/51KRggHZuzL._SX355_-300x222.jpg 300w, http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/51KRggHZuzL._SX355_.jpg 355w\" sizes=\"(max-width: 300px) 85vw, 300px\" /> <img class=\"alignnone size-medium wp-image-12\" src=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/CV2iAeMXIAAQlZH-300x232.png\" alt=\"moto\" width=\"300\" height=\"232\" srcset=\"http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/CV2iAeMXIAAQlZH-300x232.png 300w, http://192.168.1.8/Android/android/wordpress/wp-content/uploads/2016/07/CV2iAeMXIAAQlZH.png 600w\" sizes=\"(max-width: 300px) 85vw, 300px\" /></p>\n

那么,我如何从这个String获取图片网址

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式来匹配src代码中的img属性。

试试这段代码,

String mydata = "your html string";
String regex = "src\\s*=\\s*\"(.+?)\"";

Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(mydata);
List<String> imgUrls = new ArrayList<String>();
while (matcher.find()) {
    imgUrls.add(matcher.group(1));
}

//Load imgUrls into ImageViews using some image loader

对于图像加载器,您可以使用PicassoGlide

答案 1 :(得分:1)

Try this::

Document doc = Jsoup.parse(html);
        Elements element = doc.getAllElements();
        for(Element e: element)
        {
            Elements str = e.getElementsByTag("img");
            for(Element el: str)
            {                
                String src= el.attr("src");
                System.out.println("The src:"+src);
            }
        }

答案 2 :(得分:0)

URL[] urlsimage;
Bitmap[] TBM;

JSONArray jsonArray = new JSONArray(Response);

urlsimage=new URL[jsonArray.length()];
TBM=new Bitmap[jsonArray.length()];

for(int i=0; i < jsonArray.length(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);

Image[i]=jsonObject.getString("image");
  if(!Image[i].equals("null"))
  {
      urlsimage[i]=new URL(Image[i]);
      TBM[i] = BitmapFactory.decodeStream(urlsimage[i].openConnection().getInputStream());
  }
}

img.setImageBitmap(TBM[0]);