0

以下の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

4 に答える 4

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

「HotelDetails」解析によるこの同じプロセス

楽しみ !

于 2012-04-10T12:14:31.147 に答える
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

追加情報については、このリンクを確認してください

于 2012-04-10T12:00:51.707 に答える
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/

于 2012-04-10T13:04:31.800 に答える
0

JSONArray と JSONObject を使用して手動で解析できます。しかし、それは退屈で、ループで実行している間はキーに特別な注意を払う必要があるかもしれません. 最も簡単で強く推奨される方法は、Google Gsonライブラリを使用してこれを自動的に処理することです。

于 2012-04-10T11:55:10.657 に答える