0

我写了这个语句来获取存储在 json 文件中的图像的 url,但是返回的数据为空,我的模拟器已经崩溃了!!

String url=ent.getJSONObject(i).getJSONArray("media$thumbnail").getJSONObject(0).getString("url").toString();

包含图像 url 的对象

该语句的语法是否有任何逻辑错误?

4

2 回答 2

2

使用 Jsoup 最简单的解决这个问题

http://www.jsoup.org/cookbook/introduction/parsing-a-document/

于 2013-07-16T09:40:05.593 回答
1

使用此代码

   ArrayList<HashMap<String, String>> searchList = new ArrayList<HashMap<String, String>>();
  XMLParser parser = new XMLParser();
  String xml = parser.getXmlFromUrl(URL); // getting XML from URL
  Document doc = parser.getDomElement(xml); // getting DOM element
  NodeList nl = doc.getElementsByTagName(KEY_PRODUCT);
  for (int i = 0; i < nl.getLength(); i++) {
  Cursor cousor_image = null;
  HashMap<String, String> map = new HashMap<String, String>();
  Element e = (Element) nl.item(i);
      map.put(KEY_PRODUCT_ID, parser.getValue(e, KEY_PRODUCT_ID));
      searchList.add(map);
      Element elm = (Element) n3.item(0);

这是定义 im XMLparser 类的代码

    DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        xml = EntityUtils.toString(httpEntity);
        Log.i("XML Parser", "xml=" + xml);

下面的代码将有助于将位图收集到图像

   public void DisplayImage(String url, ImageView imageView) {
    imageViews.put(imageView, url);
    Bitmap bitmap = memoryCache.get(url);
    if (bitmap != null){
        imageView.setImageBitmap(bitmap);

    }

    else {
        queuePhoto(url, imageView);
        imageView.setImageResource(stub_id);
    }
}

最后是 memorycache 类

     import java.lang.ref.SoftReference;
     import java.util.Collections;
     import java.util.HashMap;
     import java.util.Map;
     import android.graphics.Bitmap;

     public class MemoryCache {
private Map<String, SoftReference<Bitmap>> cache = Collections
        .synchronizedMap(new HashMap<String, SoftReference<Bitmap>>());

public Bitmap get(String id) {
    if (!cache.containsKey(id))
        return null;
    SoftReference<Bitmap> ref = cache.get(id);
    return ref.get();
}

public void put(String id, Bitmap bitmap) {
    cache.put(id, new SoftReference<Bitmap>(bitmap));
}

public void clear() {
    cache.clear();
}

}

于 2013-07-16T09:34:26.180 回答