Android:解码JSON

时间:2012-02-08 11:07:41

标签: android json

[{“placeID”:“p0001”,“placeName”:“INTI国际大学”,“placeType”:“教育”,“placeLat”:“2.813997”,“placeLng”:“101.758229”,“placePict” :“”},{“placeID”:“p0002”,“placeName”:“Nilai International College”,“placeType”:“Education”,“placeLat”:“2.814179”,“placeLng”:“101.7700107”,“placePict “:”“}]

如何解码从Android上的PHP脚本发送的JSON?

5 个答案:

答案 0 :(得分:1)

请试试这个

 String s = "[{\"placeID\":\"p0001\",\"placeName\":\"INTI International University\",\"placeType\":\"Education\","
            + "\"placeLat\":\"2.813997\",\"placeLng\":\"101.758229\",\"placePict\":\"\"},"
            + "{\"placeID\":\"p0002\",\"placeName\":\"Nilai International College\",\"placeType\":\"Education\",\"placeLat\":\"2.814179\",\"placeLng\":\"101.7700107\",\"placePict\":\"\"}]";
    ArrayList<String> arrplaceID = new ArrayList<String>();
    ArrayList<String> arrplaceName = new ArrayList<String>();
    try {
        JSONArray arr = new JSONArray(s);
        for (int i = 0; i < arr.length(); i++) {
            JSONObject jsonObject = arr.getJSONObject(i);
            arrplaceID.add(jsonObject.optString("placeID"));
            arrplaceName.add(jsonObject.optString("placeName"));
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    for (int i = 0; i < arrplaceID.size(); i++) {
        Log.e("arr[" + i + "] place Name", arrplaceName.get(i));
    }

答案 1 :(得分:0)

您可以查看此页面,您的问题有很多有用的解决方案:;

Sending and Parsing JSON Objects

答案 2 :(得分:0)

这有什么问题请阅读本教程以解析JSON,以后它可能会有所帮助。json parsing link

答案 3 :(得分:0)

请遵循以下几点。

1)看来你得到的回应是Json Array。所以通过响应字符串创建一个json数组。

              JSonArray jArray = new JsonArray(responseString);

2)现在你在jArray中得到了回应。现在迭代一个循环并从JsonArray中获取json对象,在你的情况下你有两个json对象。

      for(i,i<jArray.size,i++)
   {
      JsonObject obj=jArray.get(i);
     // here you got your first entry in jsonObject. 
     // nor use this obj according to ur need. you can say obj.getString("placeID");
    // and so on.
     }

请参阅此内容以了解有关json link

的更多信息

答案 4 :(得分:0)

使用JSONArray类:

JSONArray jsonplaces = new JSONObject(stringPlaces);

然后你可以使用for循环迭代数组:

for (int i = 0; i < jsonplaces.length(); i++) {
    JSONObject jsonplace = (JSONObject) jsonplaces.get(i);
    //read items, for example:
    String placeName = jsonplace.getString("placeName");
}