title: Can't parse JSON into a ListView
body: <p><strong>What I'm trying</strong></p>
  
  <hr>
  
  <p>I'd like to understand JSON on a deep level. For that I though I create a App for my Youtube-Channel. First I've created a JSON-File of my Channel on this site: <a href="http://gdata.youtube.com/demo/index.html" rel="nofollow">GData Youtube</a> and created this JSON-File: <a href="http://gdata.youtube.com/feeds/mobile/users/TheStepForward/uploads?alt=json&amp;format=1" rel="nofollow">JSON of the Channel</a>.</p>
  
  <p>After that I started to create my Channel-App with this tutorial: <a href="http://p-xr.com/android-tutorial-how-to-parse-read-json-data-into-a-android-listview/" rel="nofollow">JSON Tutorial</a>, I changed it a bit that it "should" work with my Channel-JSON-File but it just dosn't work and I really don't get why, this is the Error-Message I allways get.
  <code>11-22 08:35:37.932: E/CANT READ DATA(15923): Error parsing data org.json.JSONException: Value Response of type java.lang.String cannot be converted to JSONObject</code></p>
  
  <p>The thing is the Code of the JSONfunction.java works on the tutorial and here it dosn't so something must be wrong in the main.java but I don't get what's false.!!! :(</p>
  
  <p><strong>Question</strong></p>
  
  <hr>
  
  <p>What do I need to change in my Main.java to get my Code working. If you have a tutorial for the Problem I got, or a really good codesample i would be happy too.
  This is how the JSON-File from the Channel looks like:<a href="http://code.google.com/intl/de-DE/apis/youtube/2.0/developers_guide_protocol_channel_search.html" rel="nofollow">JSON-Structure</a>
  The Code and the Error-Log you find down here:</p>
  
  <p><strong>Code</strong></p>
  
  <hr>
  
  <p>JSONfunction.java</p>
  
  <pre><code>package de.stepforward;
  
  import java.io.BufferedReader;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.util.HashMap;
  
  import org.apache.http.HttpEntity;
  import org.apache.http.HttpResponse;
  import org.apache.http.client.HttpClient;
  import org.apache.http.client.entity.UrlEncodedFormEntity;
  import org.apache.http.client.methods.HttpPost;
  import org.apache.http.impl.client.DefaultHttpClient;
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  
  import android.util.Log;
  
  public class JSONfunction {
  
      public static JSONObject getJSONfromURL(String url){
          InputStream is = null;
          String result = "";
          JSONObject jArray = null;
  
          //http post
          try{
                  HttpClient httpclient = new DefaultHttpClient();
                  HttpPost httppost = new HttpPost(url);
                  HttpResponse response = httpclient.execute(httppost);
                  HttpEntity entity = response.getEntity();
                  is = entity.getContent();
  
          }catch(Exception e){
                  Log.e("NO CONNECTION", "Error in http connection "+e.toString());
          }
  
        //convert response to string
          try{
                  BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                  StringBuilder sb = new StringBuilder();
                  String line = null;
                  while ((line = reader.readLine()) != null) {
                          sb.append(line + "\n");
                  }
                  is.close();
                  result=sb.toString();
          }catch(Exception e){
                  Log.e("CANT CONVERT DATA", "Error converting result "+e.toString());
          }
  
          try{
  
              jArray = new JSONObject(result);            
          }catch(JSONException e){
                  Log.e("CANT READ DATA", "Error parsing data "+e.toString());
          }
  
          return jArray;
      }
  }
  </code></pre>
  
  <p>ShowChannel.java</p>
  
  <pre><code>    package de.stepforward;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  
  import android.app.ListActivity;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.ListAdapter;
  import android.widget.ListView;
  import android.widget.SimpleAdapter;
  import android.widget.Toast;
  import android.widget.AdapterView.OnItemClickListener;
  
  
  public class ShowChannel  extends ListActivity {
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          ArrayList&lt;HashMap&lt;String, String&gt;&gt; mylist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
  
          JSONObject json = JSONfunction.getJSONfromURL("http://gdata.youtube.com/feeds/mobile/users/TheStepForward/uploads?alt=json&amp;format=1");
  
          try{
          JSONObject feed = json.getJSONObject("feed");   
          JSONArray entry = feed.getJSONArray("entry");
  
          for(int i=0;i&lt;entry.length();i++){                      
              HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();    
              JSONObject e = entry.getJSONObject(i);
  
              map.put("title", e.getString("title.$t"));
              map.put("description", e.getString("content.$t"));
              map.put("link", e.getString("media$player"));
              map.put("thumbnail", e.getString("media$thumbnail.url"));
              mylist.add(map);
  
          }
  
  
  
          }catch(JSONException e)        {
           Log.e("log_tag", "Error parsing data "+e.toString());
         }
  
          //Liste füllen
          ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.listlayout, 
                  new String[] {"thumbnail", "title", "description", "link" }, 
                  new int[] { R.id.img_video, R.id.txt_title, R.id.txt_subtitle });
  
          setListAdapter(adapter);
  
          //OnItemClickListner für Hyperlinks
          final ListView lv = getListView();
          lv.setTextFilterEnabled(true);  
          lv.setOnItemClickListener(new OnItemClickListener() {
              public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {   
                  @SuppressWarnings("unchecked")
                  HashMap&lt;String, String&gt; o = (HashMap&lt;String, String&gt;) lv.getItemAtPosition(position);
                  Toast.makeText(ShowChannel.this, "Link '" + o.get("link") + "' was clicked.", Toast.LENGTH_SHORT).show();
              }
  
          });
  
      }
  
  }
  </code></pre>
  
  <p>Error-Log</p>
  
  <pre><code>11-22 08:35:37.932: E/CANT READ DATA(15923): Error parsing data org.json.JSONException: Value Response of type java.lang.String cannot be converted to JSONObject
  11-22 08:35:37.932: D/AndroidRuntime(15923): Shutting down VM
  11-22 08:35:37.932: W/dalvikvm(15923): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
  11-22 08:35:38.032: E/AndroidRuntime(15923): FATAL EXCEPTION: main
  11-22 08:35:38.032: E/AndroidRuntime(15923): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.stepforward/de.stepforward.ShowChannel}: java.lang.NullPointerException
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.app.ActivityThread.access$1500(ActivityThread.java:132)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.os.Handler.dispatchMessage(Handler.java:99)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.os.Looper.loop(Looper.java:143)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.app.ActivityThread.main(ActivityThread.java:4196)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at java.lang.reflect.Method.invokeNative(Native Method)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at java.lang.reflect.Method.invoke(Method.java:507)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at dalvik.system.NativeStart.main(Native Method)
  11-22 08:35:38.032: E/AndroidRuntime(15923): Caused by: java.lang.NullPointerException
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at de.stepforward.ShowChannel.onCreate(ShowChannel.java:36)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780)
  11-22 08:35:38.032: E/AndroidRuntime(15923):    ... 11 more
  </code></pre>
  
  <hr>
  
  <p>Thanks for you help in advance
  best regardes
  safari</p>