可能重复:
How do I parse JSON from a Java HTTPResponse?
How to parse json string in Android?
我如何解析这个json字符串
{
"apiVersion": "2.1",
"data": {
"id": "pHuoDqcIyqk",
"uploaded": "2012-10-29T16:08:15.000Z",
"updated": "2012-11-02T08:48:28.000Z",
"uploader": "googlenexus",
"category": "Tech",
"title": "Nexus: Ask Me Anything",
"description": "The Best of Google, now in 3 sizes. Introducing Nexus 4, Nexus 7 and Nexus 10. The new smartphone and tablets from Google. Shop now at play.google.com/nexus",
"thumbnail": {
"sqDefault": "http://i.ytimg.com/vi/pHuoDqcIyqk/default.jpg",
"hqDefault": "http://i.ytimg.com/vi/pHuoDqcIyqk/hqdefault.jpg"
},
"player": {
"default": "http://www.youtube.com/watch?v=pHuoDqcIyqk&feature=youtube_gdata_player",
"mobile": "http://m.youtube.com/details?v=pHuoDqcIyqk"
},
"content": {
"5": "http://www.youtube.com/v/pHuoDqcIyqk?version=3&f=videos&app=youtube_gdata",
"1": "rtsp://v8.cache5.c.youtube.com/CiILENy73wIaGQmpyginDqh7pBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
"6": "rtsp://v7.cache4.c.youtube.com/CiILENy73wIaGQmpyginDqh7pBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"
},
"duration": 61,
"aspectRatio": "widescreen",
"rating": 4.8985643,
"likeCount": "5227",
"ratingCount": 5363,
"viewCount": 1038854,
"favoriteCount": 0,
"commentCount": 1442,
"accessControl": {
"comment": "allowed",
"commentVote": "allowed",
"videoRespond": "moderated",
"rate": "allowed",
"embed": "allowed",
"list": "allowed",
"autoPlay": "allowed",
"syndicate": "allowed"
}
}
}
任何人都可以告诉我如何拨打上述网址&获取一个JSON对象,然后解析它以获得所需的信息作为字符串?
答案 0 :(得分:0)
答案 1 :(得分:0)
String str = "" // your JSON string
JSONObject json = new JSONObject(str);
String apiVersion = json.getString("apiVersion");
// continue as before for the rest of it...
答案 2 :(得分:0)
您可以尝试以下方法。您可以传递URL并将响应作为结果字符串获取。 public static String result;
public static boolean connect(String url) {
boolean flag = false;
HttpClient httpclient = new DefaultHttpClient();
// Prepare a request object
HttpGet httppost = new HttpGet(url);
Log.e("url", url);
// Execute the request
HttpResponse response;
try {
// https://api.vkontakte.ru/method/audio.search?uid=163398985&q=akoncount=100&access_token=2a4db0e223f0f5ab23f0f5ab5f23da5680223f023f1f5a3c696b018be9b17b9
response = httpclient.execute(httppost);
// Examine the response status
Log.i("vkontake", response.getStatusLine().toString() + "\n"
+ response);
// Get hold of the response entity
HttpEntity entity = response.getEntity();
// If the response does not enclose an entity, there is no need
// to worry about connection release
if (entity != null) {
// A Simple JSON Response Read
InputStream instream = entity.getContent();
Log.d("Jsomn Activity", "---- is --- " + instream);
result = convertStreamToString(instream);
Log.d("Jsomn Activity", "---- Result --- " + result);
// now you have the string representation of the HTML request
instream.close();
} else {
Log.d("Jsomn Activity", "---- is --- null ");
}
flag = true;
net = false;
} catch (Exception e) {
Log.d("Jsomn Activity", "---- Catch --- " + e.toString());
flag = false;
e.printStackTrace();
} finally {
return flag;
}
}
答案 3 :(得分:0)
有几种方法可以做到这一点。一种简单的方法是定义一个与您的数据匹配的对象结构,并使用http://code.google.com/p/google-gson/来填充它:
final URL url = new URL("http://yourURL.com");
final InputStream openStream = url.openStream();
final InputStreamReader inputStreamReader = new InputStreamReader(openStream);
final SearchResult searchResult = new Gson().fromJson(inputStreamReader, SearchResult.class);
如果您的searchResult类包含一个字段,例如apiVersion,它将填充来自JSON的数据。然后你有一个数据字段,里面有其他字段等。这是一种非常简单的方法来填充你的数据,但你必须在对象模型中镜像JSON流的结构。
答案 4 :(得分:-1)
JSON.org site包含不少于20种不同的JSON解析器的java实现。