Java 解析简单Json响应
我正在尝试解析这个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
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,我将尝试您的解决方案。