Java 解析简单Json响应

Java 解析简单Json响应,java,android,json,youtube-api,Java,Android,Json,Youtube Api,我正在尝试解析这个Json响应。出于某种奇怪的原因,它不起作用。请容忍我。我真的很烂 这是我用来解析它的代码: public class AsyncTaskParseJson extends AsyncTask<String, String, String> { final String TAG = "AsyncTaskParseJson.java"; // set your json string url here @Overrid

我正在尝试解析这个Json响应。出于某种奇怪的原因,它不起作用。请容忍我。我真的很烂

这是我用来解析它的代码:

      public class AsyncTaskParseJson extends AsyncTask<String, String, String> {

       final String TAG = "AsyncTaskParseJson.java";

    // set your json string url here


    @Override
    protected void onPreExecute() {

        Toast.makeText(getActivity(), "started", Toast.LENGTH_SHORT).show();

    }

    @Override
    protected String doInBackground(String... arg0) {

        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new   HttpPost("http://gdata.youtube.com/feeds/api/videos/iS1g8G_njx8?v=2&alt=jsonc");

        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


        try{
            JSONObject myJson = new JSONObject(str);

            String grande =  myJson.getString("title");
            Toast.makeText(getActivity(), ""+grande, Toast.LENGTH_SHORT).show();


        } catch ( JSONException e) {
            e.printStackTrace();
        }



         return null;
      }

        @Override
        protected void onPostExecute(String strFromDoInBg) {

        Toast.makeText(getActivity(), "done", Toast.LENGTH_SHORT).show();

       }
   }

我只需要解析标题和描述。谢谢

我认为您在doInBackground中的toast消息带来了问题,请尝试对其进行评论,然后查看


此外,最佳做法是将响应作为参数发送到onPostExecute,然后在onPostExecute中解析Json,因为您似乎没有正确解析

用以下代码更改try块

try{
            JSONObject myJson = new JSONObject(str);
            JSONObject entityObject = myJson.getJSONObject("entity");

            // Parsing title
            JSONOBject titleObject = entityObject.getJSONObject("title");
            String grande =  titleObject.getString("$t");

            // Do the same for Description as well (Like above two line)

            Toast.makeText(getActivity(), ""+grande, Toast.LENGTH_SHORT).show();


        } catch ( JSONException e) {
            e.printStackTrace();
   }
试着这样,

@Override
    protected String doInBackground(String... arg0) {

        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new   HttpPost("http://gdata.youtube.com/feeds/api/videos/iS1g8G_njx8?v=2&alt=jsonc");

        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

         return str;
      }

       @Override
        protected void onPostExecute(String result) {

        try{
            JSONObject myJson = new JSONObject(result);

             JSONObject entry =  results.getJSONObject("entry");
            JSONObject grande =  results.getJSONObject("title");
            String title =  grande.getString("$t"); 
            Toast.makeText(getActivity(), title, Toast.LENGTH_SHORT).show();


        } catch ( JSONException e) {
            e.printStackTrace();
        }

        Toast.makeText(getActivity(), "done", Toast.LENGTH_SHORT).show();

       }

您遇到的异常是什么?您在解析过程中遇到了什么错误?@Srinivas B我是否正确解析了Json?如果确定我正确解析了Json,我将尝试您的解决方案。