title: JSON data in listview with images parsing error
body: <p>I am using jsonparser to parse data and images obtained from json response. When i include this code to parse image output is D/AndroidRuntime(441): Shutting down VM 
   D/dalvikvm(441): Debugger has detached; object registry had 1 entries</p>
  
  <pre><code>JSONArray attachments = json.getJSONArray(KEY_ATTACHMENTS);
                  for(int j = 0; j &lt; attachments.length(); j++){
                      JSONObject d = attachments.getJSONObject(j);
                      JSONObject images = d.getJSONObject(KEY_IMAGES);
                      String thumbnail = d.getString(KEY_THUMB_URL);
  
                      JSONObject thumnails = d.getJSONObject(KEY_THUMB_URL);
                      String url = author.getString(KEY_URL);
  </code></pre>
  
  <p>Am'i going wrong in parsing the content? can any body help Images are displaying along with data in output. my JSON response is </p>
  
  <pre><code>{
  "status": "ok",
  
  "posts": [
      {
          "id": 2498,
          "title": "jigsaw lamp imported from thailand",
          "content": "&lt;p&gt;Hi. It&amp;#8217;s a invitation to have a look at a unique lamp shade called jigsaw lamp from thailand. Available in multi attractive colours.&lt;/p&gt;\n",
          "date": "2012-12-26 09:48:15",
           "author": {
              "name": "Tapas123456",
                          },
              "attachments": [
              {
                  "description": "",
                  "caption": "",
                  "mime_type": "image/jpeg",
                  "images": {
  
                      "thumbnail": {
                          "url": "http://site/wp-content/uploads/2012/12/646675-50x47.jpg",
  
                      }
                  }
              },...............
  </code></pre>
  
  <p>following is the code </p>
  
  <pre><code>     public class CustomizedListView extends Activity {
     JSONArray posts = null;
  
    // All static variables
    static final String URL = "http://website";
  
  
  
    static final String KEY_POSTS = "posts";
    static final String KEY_ID = "id";
    static final String KEY_TITLE = "title";
    static final String KEY_DATE = "date";
    static final String KEY_CONTENT = "content";
    static final String KEY_AUTHOR = "author";
    static final String KEY_NAME = "name";
    static final String KEY_ATTACHMENTS = "attachments";
    static final String KEY_THUMB_URL = "thumbnail";
    static final String KEY_IMAGES = "images";
    static final String KEY_URL = "url";
  
    ListView list;
       LazyAdapter adapter;
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
  
  
      ArrayList&lt;HashMap&lt;String, String&gt;&gt; songsList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
  
  
      // Creating JSON Parser instance
              JSONParser jParser = new JSONParser();
  
              // getting JSON string from URL
              JSONObject json = jParser.getJSONFromUrl(URL);
              try {
              posts = json.getJSONArray(KEY_POSTS);
      // looping through all song nodes &lt;song&gt;
              for(int i = 0; i &lt; posts.length(); i++){
                  JSONObject c = posts.getJSONObject(i);
                  // Storing each json item in variable
                  String id = c.getString(KEY_ID);
                  String title = c.getString(KEY_TITLE);
                  String date = c.getString(KEY_DATE);
                  String content = c.getString(KEY_CONTENT);
  
                  // Phone number is agin  JSON Object
                  JSONObject author = c.getJSONObject(KEY_AUTHOR);
                  String name = author.getString(KEY_NAME);
  
                  JSONArray attachments = json.getJSONArray(KEY_ATTACHMENTS);
                  for(int j = 0; j &lt; attachments.length(); j++){
                      JSONObject d = attachments.getJSONObject(j);
                      JSONObject images = d.getJSONObject(KEY_IMAGES);
                      String thumbnail = d.getString(KEY_THUMB_URL);
  
                      JSONObject thumnails = d.getJSONObject(KEY_THUMB_URL);
                      String url = author.getString(KEY_URL);
                  }
          // creating new HashMap
          HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();
  
          // adding each child node to HashMap key =&gt; value
          map.put(KEY_ID, id);
          map.put(KEY_TITLE, title);
          map.put(KEY_DATE, date);
          map.put(KEY_NAME, name);
          map.put(KEY_CONTENT, content);
  
          // adding HashList to ArrayList
          songsList.add(map);
              }   
              } catch (JSONException e) {
                  e.printStackTrace();
  
                  }
  
  
      list=(ListView)findViewById(R.id.list);
  
      // Getting adapter by passing json data ArrayList
      adapter=new LazyAdapter(this, songsList);        
      list.setAdapter(adapter);
  
  
      // Click event for single list row
      list.setOnItemClickListener(new OnItemClickListener() {
  
          @Override
          public void onItemClick(AdapterView&lt;?&gt; parent, View view,
                  int position, long id) {
  
  
          }
           });        
            } 
              }
  </code></pre>
  
  <p>LazyAdapter.java</p>
  
  <pre><code>public class LazyAdapter extends BaseAdapter {
  
  private Activity activity;
  private ArrayList&lt;HashMap&lt;String, String&gt;&gt; data;
  private static LayoutInflater inflater=null;
  public ImageLoader imageLoader; 
  
  public LazyAdapter(Activity a, ArrayList&lt;HashMap&lt;String, String&gt;&gt; d) {
      activity = a;
      data=d;
      inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      imageLoader=new ImageLoader(activity.getApplicationContext());
  }
  
  public int getCount() {
      return data.size();
  }
  
  public Object getItem(int position) {
      return position;
  }
  
  public long getItemId(int position) {
      return position;
  }
  
  public View getView(int position, View convertView, ViewGroup parent) {
      View vi=convertView;
      if(convertView==null)
          vi = inflater.inflate(R.layout.list_row, null);
  
      TextView title = (TextView)vi.findViewById(R.id.title); // title
      TextView date = (TextView)vi.findViewById(R.id.artist); // artist name
      TextView content = (TextView)vi.findViewById(R.id.duration);  // duration
      TextView name = (TextView)vi.findViewById(R.id.name); 
      // duration
      ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image); // thumb image
  
      HashMap&lt;String, String&gt; song = new HashMap&lt;String, String&gt;();
      song = data.get(position);
  
  
      ListView list;
      // Setting all values in listview
      title.setText(song.get(CustomizedListView.KEY_TITLE));
      date.setText(song.get(CustomizedListView.KEY_DATE));
      content.setText(song.get(CustomizedListView.KEY_CONTENT));
      name.setText(song.get(CustomizedListView.KEY_NAME));
  
      imageLoader.DisplayImage(song.get(CustomizedListView.KEY_URL), thumb_image);
      return vi;
          }
          }
  </code></pre>
  
  <p>logcat error
  12-29 14:42:59.152: D/AndroidRuntime(449): CheckJNI is ON
  12-29 14:42:59.273: D/AndroidRuntime(449): --- registering native functions ---
  12-29 14:42:59.732: D/AndroidRuntime(449): Shutting down VM
  12-29 14:42:59.742: D/dalvikvm(449): Debugger has detached; object registry had 1 entries
  12-29 14:42:59.752: I/AndroidRuntime(449): NOTE: attach of thread 'Binder Thread #3' failed
  12-29 14:43:00.172: D/AndroidRuntime(457): >>>>>>>>>>>>>> AndroidRuntime START &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
  12-29 14:43:00.172: D/AndroidRuntime(457): CheckJNI is ON
  12-29 14:43:00.292: D/AndroidRuntime(457): --- registering native functions ---
  12-29 14:43:00.772: I/ActivityManager(58): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.androidhive/.CustomizedListView }
  12-29 14:43:00.783: D/AndroidRuntime(457): Shutting down VM
  12-29 14:43:00.783: D/dalvikvm(457): Debugger has detached; object registry had 1 entries
  12-29 14:43:00.792: I/AndroidRuntime(457): NOTE: attach of thread 'Binder Thread #3' failed</p>