android:json解析解码

时间:2011-10-07 06:39:20

标签: android json

我正在创建一个应用程序,其中我从服务器端获取字符串作为响应。该响应以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

如何解决此问题。 任何人都可以帮助我吗? 感谢

3 个答案:

答案 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)

GSON如果您只是想保持简单。如果您需要原始速度,请Jackson流式传输。

或者您可以随时使用内置的JSON tools - 但我建议使用其中两种。