简体   繁体   中英

How to parse json response android

How to parse this below json response. I am developing a booking app. The response i got from the server is

 {"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  ",
   }

Any method is appreciated

I hope this code can help u

 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());
            }
        }

This Same process with "HotelDetails" Parsing

Enjoy !

You may use JSONArray and JSONObject to parse it manually. but its boring and may require extra attention to keys while running in loops. The easiest and highly recommended way is to use Google Gson library to handle this automatically.

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

for extra information Check this link

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

You will understand how to parse JSON in Android easily with the link which describes how to parse JSON clearly (Example): http://www.technotalkative.com/android-json-parsing/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM