如何解析json响应android

时间:2012-04-10 11:52:50

标签: android json parsing

如何在json响应下面解析这个问题。我正在开发一个预订应用程序。我从服务器得到的回复是

 {"HotelInformationResponse": {
 "@hotelId": "210985",
  "customerSessionId": "0ABAA826-9AAF-5791-3692-A03326791310",
 "HotelSummary": {
   "@order": "0",
  "hotelId": 210985,
  "name": "Seattle Marriott Waterfront",
  "address1": "2100 Alaskan Way",
  "city": "Seattle",
  "stateProvinceCode": "WA",
  "postalCode": 98121,
  "countryCode": "US",
  "propertyCategory": 1,
  "hotelRating": 4,
  "tripAdvisorRating": 4,
  "locationDescription": "Near Seattle Aquarium",
  "highRate": 645,
  "lowRate": 279,
  "latitude": 47.61016,
  "longitude": -122.34651
},
"HotelDetails": {
  "numberOfRooms": 358,
  "numberOfFloors": 8,
  "checkInTime": "4:00 PM",
  "checkOutTime": "12:00 PM",
  "propertyInformation": "Pets not allowed   Check-in time starts at 4 PM  Check-out  time is Noon  ",
   }

感谢任何方法

4 个答案:

答案 0 :(得分:1)

我希望这段代码可以帮助你

 public static String Profile_response(String response){
            try{
                JSONArray jsonarray = new JSONArray("["+response+"]");
                JSONObject jsonobject = jsonarray.getJSONObject(0);
                parseForcitydetail1(jsonobject.getString("HotelInformationResponse"));


                return response;

            }catch (Exception e) {
                return "\"" + "Access Denied" + "\"";
            }
        }

    public static void parseForcitydetail1(String res){
            try{
                 JSONArray jsonarray1 = new JSONArray(res);
                for(int i=0;i<jsonarray1.length();i++){
                        JSONObject jsonobject = jsonarray1.getJSONObject(i);
                        Hotal_ID.add(jsonobject.getString("@hotelId"));
                        customer_ID.add(jsonobject.getString("customerSessionId"));

            }
 parseForcitydetail2(jsonobject.getString("HotelSummary"));


            }catch (Exception e) {
                System.out.println(e.toString());
            }
        }

    public static void parseForcitydetail2(String res){
            try{
                 JSONArray jsonarray1 = new JSONArray(res);
                for(int i=0;i<jsonarray1.length();i++){
                        JSONObject jsonobject = jsonarray1.getJSONObject(i);
                        Order.add(jsonobject.getString("@order"));
                        hote_ID.add(jsonobject.getString("hotelId"));
    Name.add(jsonobject.getString("name"));                     Address.add(jsonobject.getString("address1"));....
    City.add(jsonobject.getString("city"));
    StateProvinceCode.add(jsonobject.getString("stateProvinceCode")); PostalCode.add(jsonobject.getString("postalCode"));
    CountryCode.add(jsonobject.getString("countryCode"));
    PropertyCategory.add(jsonobject.getString("propertyCategory"));                     HotelRating.add(jsonobject.getString("hotelRating"));....
    TripAdvisorRating.add(jsonobject.getString("tripAdvisorRating"));
    LocationDescription.add(jsonobject.getString("locationDescription")); Latitude.add(jsonobject.getString("latitude"));
    Longitude.add(jsonobject.getString("longitude"));
            }

            }catch (Exception e) {
                System.out.println(e.toString());
            }
        }

与&#34; HotelDetails&#34;相同的过程解析

享受!

答案 1 :(得分:0)

您可以使用JSONArray和JSONObject手动解析它。但它很无聊,在循环中运行时可能需要额外注意键。最简单且最受推荐的方法是使用Google Gson库自动处理此问题。

答案 2 :(得分:0)

private JSONObject jObject;
jObject = new JSONObject(your response as string);
//this will give you json object for HotelInformationResponse
JSONObject menuObject = jObject.getJSONObject("HotelInformationResponse");
by this way you can get values
String hotelId = menuObject.getString("@hotelId");
String customerSessionId = menuObject.getString("customerSessionId");
//...rest are same do same thing for HotelDetails

了解更多信息Check this link

答案 3 :(得分:0)

Using JSONOBject, JSONArray to contain data like JSONObject, JSONArray
Using methods like: getJSONObject(), getString(), getXXX(). . to get data which you want.
with XXX -  data type like int, string

您将了解如何使用描述如何清楚地解析JSON的链接轻松解析Android中的JSON(示例): http://www.technotalkative.com/android-json-parsing/