Android 无法转换为JSONObject
我试图将链接解析为JSON,但始终无法将错误转换为JSONObject 我尝试了大量的示例,将字符串转换为JSONObject,但都没有成功。对于这么多的数据,我不确定Inputstream的大小是否更小Android 无法转换为JSONObject,android,json,Android,Json,我试图将链接解析为JSON,但始终无法将错误转换为JSONObject 我尝试了大量的示例,将字符串转换为JSONObject,但都没有成功。对于这么多的数据,我不确定Inputstream的大小是否更小 HttpClient client = new DefaultHttpClient(); // Perform a GET request to YouTube for a JSON list of all the // videos by a specific
HttpClient client = new DefaultHttpClient();
// Perform a GET request to YouTube for a JSON list of all the
// videos by a specific user
//URI uri_ = new URI("https://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46?v=2&alt=json");
HttpUriRequest request = new HttpGet("https://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46?v%E2%80%8C%E2%80%8B=2&alt=json");
// Get the response that YouTube sends back
HttpResponse response = client.execute(request);
// Convert this response into a readable string
String jsonString = StreamUtils.convertToString(response.getEntity().getContent());
System.out.println("JSON:" + jsonString );
// Create a JSON object that we can use from the String
JSONObject json = new JSONObject(jsonString);
将inputstream转换为字符串的代码
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
inputStream.close();
输出字符串:
{"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$media":"http://search.yahoo.com/mrss/","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$yt":"http://gdata.youtube.com/schemas/2007","id":{"$t":"http://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46"},"updated":{"$t":"2012-11-22T17:11:53.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://gdata.youtube.com/schemas/2007#playlist"},{"scheme":"http://gdata.youtube.com/schemas/2007/tags.cat","term":"Bartle"},{"scheme":"http://gdata.youtube.com/schemas/2007/tags.cat","term":"Doo"},{"scheme":"http://gdata.youtube.com/schemas/2007/tags.cat","term":"Mumbles"}],"title":{"$t":"Mumbles","type":"text"},"subtitle":{"$t":"Bartle Doo!","type":"text"},"logo":{"$t":"http://www.youtube.com/img/pic_youtubelogo_123x63.gif"},"link":[{"rel":"alternate","type":"text/html","href":"https://www.youtube.com/playlist?list=PL2B3B8DDAE8F71C46"},{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"https://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46"},{"rel":"http://schemas.google.com/g/2005#batch","type":"application/atom+xml","href":"https://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46/batch"},{"rel":"self","type":"application/atom+xml","href":"https://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46?alt=json&start-index=1&max-results=25"}],"author":[{"name":{"$t":"edbassmaster"},"uri":{"$t":"https://gdata.youtube.com/feeds/api/users/edbassmaster"}}],"generator":{"$t":"YouTube data API","version":"2.1","uri":"http://gdata.youtube.com"},"openSearch$totalResults":{"$t":25},"openSearch$startIndex":{"$t":1},"openSearch$itemsPerPage":{"$t":25},"media$group":{"media$content":[{"url":"http://www.youtube.com/p/PL2B3B8DDAE8F71C46","type":"application/x-shockwave-flash","yt$format":5}],"media$description":{"$t":"Bartle Doo!","type":"plain"},"media$thumbnail":[{"url":"http://i.ytimg.com/vi/6S7zwXGBiTE/default.jpg","height":90,"width":120,"yt$name":"default"},{"url":"http://i.ytimg.com/vi/6S7zwXGBiTE/mqdefault.jpg","height":180,"width":320,"yt$name":"mqdefault"},{"url":"http://i.ytimg.com/vi/6S7zwXGBiTE/hqdefault.jpg","height":360,"width":480,"yt$name":"hqdefault"}],"media$title":{"$t":"Mumbles","type":"plain"}},"yt$playlistId":{"$t":"PL2B3B8DDAE8F71C46"},"entry":[{"id":{"$t":"http://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46/PLaFx1lHMY9-c3iy7KngIxLbSSS_9OLXMd"},"published":{"$t":"2011-07-21T15:14:04.000Z"},"updated":{"$t":"1970-01-01T00:00:00.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://gdata.youtube.com/schemas/2007#video"},{"scheme":"http://gdata.youtube.com/schemas/2007/categories.cat","term":"Comedy","label":"Comedy"}],"title":{"$t":"Mumbles at the Bassmaster Classic","type":"text"},"content":{"$t":"My official Face Book:\r\nhttp://www.facebook.com/pages/Ed-Bassmaster/259411429706\r\n\r\nMy T Shirts:\r\nhttp://www.districtlines.com/ed-bassmaster","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"https://www.youtube.com/watch?v=6S7zwXGBiTE&feature=youtube_gdata"},{"rel":"http://gdata.youtube.com/schemas/2007#video.responses","type":"application/atom+xml","href":"https://gdata.youtube.com/feeds/api/videos/6S7zwXGBiTE/responses"},{"rel":"http://gdata.youtube.com/schemas/2007#video.related","type":"application/atom+xml","href":"https://gdata.youtube.com/feeds/api/videos/6S7zwXGBiTE/related"},{"rel":"http://gdata.youtube.com/schemas/2007#mobile","type":"text/html","href":"https://m.youtube.com/details?v=6S7zwXGBiTE"},{"rel":"related","type":"application/atom+xml","href":"https://gdata.youtube.com/feeds/api/videos/6S7zwXGBiTE"},{"rel":"self","type":"application/atom+xml","href":"https://gdata.youtube.com/feeds/api/playlists/2B3B8DDAE8F71C46/PLaFx1lHMY9-c3iy7KngIxLbSSS_9OLXMd"}],"author":[{"name":{"$t":"edbassmaster"},"uri":{"$t":"https://gdata.youtube.com/feeds/api/users/edbassmaster"}}],"gd$comments":{"gd$fee
请帮我解决这个问题。
谢谢
Yuvi在这个AnyTask类中,我下载并解析json
private List<HashMap<String, String>> mapList = new ArrayList<HashMap<String, String>>();
private InputStream is;
@Override
protected List<HashMap<String, String>> doInBackground(String... urls) {
try {
DefaultHttpClient httpClient = getNewHttpClient();
HttpGet get = new HttpGet((String) urls[0]);
HttpResponse httpResponse = httpClient.execute(get);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
JSONArray jsonArray = new JSONArray(sb.toString());
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject row = jsonArray.getJSONObject(i);
DowloadSpecificJson(row);
}
} catch (Exception e) {
e.printStackTrace();
}
return mapList;
}
private void DowloadSpecificJson(JSONObject row) throws JSONException {
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", row.getString("id"));
map.put("name", row.getString("name"));
map.put("img", row.getString("img"));
mapList.add(map);
}
private List mapList=new ArrayList();
私有输入流是;
@凌驾
受保护列表doInBackground(字符串…URL){
试一试{
DefaultHttpClient httpClient=getNewHttpClient();
HttpGet=新的HttpGet((字符串)URL[0]);
HttpResponse HttpResponse=httpClient.execute(get);
HttpEntity HttpEntity=httpResponse.getEntity();
is=httpEntity.getContent();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
是“iso-8859-1”);
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
is.close();
JSONArray JSONArray=新的JSONArray(sb.toString());
for(int i=0;i
我在2.3上有同样的问题,但在4.0上没有问题。
我整个晚上都在寻找解决办法。这很简单-需要从字符串中删除从url接收的第一个符号
// Convert this response into a readable string
String jsonString = StreamUtils.convertToString(response.getEntity().getContent());
jsonString = jsonString.substring(1);
您需要发布您的相关代码和LogCat错误,以便我们能够帮助您…发布您的代码或其他内容:)可能是编码问题?您阅读的是“iso-8859-1”,而json数据将自己描述为:“编码”:“UTF-8”@micha nope,问题是我得到了一半的数据…您尝试过我提供的链接吗。。?我已经知道如何进行JSON解析。。。。
// Convert this response into a readable string
String jsonString = StreamUtils.convertToString(response.getEntity().getContent());
jsonString = jsonString.substring(1);