我正在创建一个应用程序,其中我从服务器端获取字符串作为响应。该响应以json编码。现在我的问题是如何从服务器端进行json解析编码响应来解码它.. 我正在从服务器
获得以下响应[ “ekjyot@emobx.com”, “prince6179@gmail.com”, “facebook_514728069”]
它是一个数组的形式。我想决定它并在我的另一个活动中显示为textviws。 我使用以下代码:
HttpClient client = new DefaultHttpClient();
String getURL = "http://www.ondamove.it/English/mob/profile_friends.php?email="+Login.eMailId+"";
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null)
{
String s = EntityUtils.toString(resEntityGet);
System.out.println(s);
JSONArray ids = new JSONArray(s);
for(int i=0; i< ids.length(); i++){
System.out.println(ids[]); //print each of the string in json array.
}
但它给了我错误: 表达式的类型必须是数组类型,但它已解析为JSONArray
如何解决此问题。 任何人都可以帮助我吗? 感谢
答案 0 :(得分:1)
以字符串
获取您的回复String jsonResponseString = Sever.getResponse();
JSONArray ids = new JSONArray(jsonResponseString);
for(int i=0; i< ids.length(); i++){
Log.i(TAG, ids[i]); //print each of the string in json array.
}
答案 1 :(得分:1)
您可以使用JSONTokener来解析JSON文档,例如:
String json = "{"
+ " \"query\": \"Pizza\", "
+ " \"locations\": [ 94043, 90210 ] "
+ "}";
JSONObject object = (JSONObject) new JSONTokener(json).nextValue();
String query = object.getString("query");
JSONArray locations = object.getJSONArray("locations");
答案 2 :(得分:0)