2015-06-03 26 views
-4

你好朋友,我是Android新手。我試圖執行JSON,但我不知道如何解析這個JSON響應..請幫助我如何解析android中的這個Json對象?

在此先感謝。

JSON性反應:

{ 「0」:{ 「ID」: 「24」, 「booking_id」: 「08140001」, 「USER_ID」: 「20140620015800-127001OxL72Vdk5j」, 「ORDER_ID」 :「4884c1fc-2a82-11e4-a5bf-22000a989249」,「 」點數: 00:00:00「, 」checkoutdate「:」2014-10-31 00:00:00「, 」first_name「:」milan「, 」last_name「:」patel「, 」email「:」milan @ ncodetechnologies.com「, 「手機」: 「1234567980」, 「手機」: 「1234567890」, 「國」: 「IN」, 「狀態」: 「古吉拉特邦」, 「地址」: 「艾哈邁達巴德」, 「城市」: 「Ahmedab​​ad」, 「zip_code」:「123456」, 「payment」:「0」, 「ddate_time」:「2014-08-23 06:59:27」, 「credit_card_number」:null, 「cvv 「:空, 」EXPIRY_DATE「:空, 」LANGUAGE_ID「:」 1" }, 「1」:{ 「ID」: 「24」, 「booking_id」: 「08140001」, 「USER_ID」 :「20140620015800-127001OxL72Vdk5j」, 「order_id」:「4884c1fc-2a82-11e4-a5bf -22000a989249「, 」points「:」340「, 」want_to_say「:」「, 」reason「:」Business「, 」checkindate「:」2014-10-30 00:00:00「, 」 checkoutdate「:」2014-10-31 00:00:00「, 」first_name「:」milan「, 」last_name「:」patel「, 」email「:」[email protected]「, 」phone 「:」 1234567980" , 「手機」: 「1234567890」, 「國」: 「IN」, 「狀態」: 「古吉拉特邦」, 「地址」: 「艾哈邁達巴德」, 「城市」: 「巴德」 , 「zip_code」:「123456」, 「payment」:「0」, 「ddate_time」:「2014-08-23 06:59:27」, 「 credit_card_number 「:空, 」CVV「:空, 」EXPIRY_DATE「:空, 」LANGUAGE_ID「:」 1" }}

+1

您是否想過要進行搜索?這是我在Google上找到的第一個匹配[解析json安卓](http://stackoverflow.com/questions/9605913/how-to-parse-json-in-android) –

+0

也可以使用第三方庫,如GSON ... – Chandrakanth

+0

是的,我嘗試,但我沒有得到正確的答案。 – nirmal

回答

0

您是否嘗試過使用Google的GSON?

這裏的鏈接到項目:https://github.com/google/gson

的立即下載頁面:http://search.maven.org/#artifactdetails%7Ccom.google.code.gson%7Cgson%7C2.3.1%7Cjar

和示例代碼來解析您的JSON:

Gson gson = new Gson(); 
YourObject[] objects = gson.fromJson(jsonString, YourObject[].class); 

YourObject應該是這個樣子:

public class YourObject{ 
    int id; 
    int booking_id; 
    String user_id; 
    ... 
} 

只是單挑:如果任何Json元素具有null或空值,即使它們主要是YourObject類中的int,最好將它們聲明爲String以避免java.lang.NumberFormatException

0

使用此代碼從webservcie數據解析到Android

 public void getValues_From_Web(String categoryId) { 
      // Create request 
      SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

      PropertyInfo pi3 = new PropertyInfo(); 
      pi3.setName("Webnameid"); 
      pi3.setValue(categoryId); 
      pi3.setType(String.class); 
      request.addProperty(pi3); 


      // Create envelope 
      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelope.dotNet = true; 
      // Set output SOAP object 
      envelope.setOutputSoapObject(request); 
      // Create HTTP call object 
      HttpTransportSE androidHttpTransport = new HttpTransportSE(URL_BRANDS); 

      try { 
       // Invole web service 
       androidHttpTransport.call(SOAP_ACTION_BRANDS, envelope); 
       // Get the response 
       SoapPrimitive response4 = (SoapPrimitive) envelope.getResponse(); 

       //Converting string to Array list 
        List1= new ArrayList<String>(); 
        List2= new ArrayList<String>(); 


       if ((response4.toString()).contains("{")) { 

        SoapObject rep = (SoapObject) envelope.bodyIn; 
        JSONArray jr = new JSONArray(rep.getPropertyAsString(0) 
          .toString()); 
        for (int i = 0; i < jr.length(); i++) 
        { 
         JSONObject jb = (JSONObject) jr.get(i); 

         Id= jb.getString("Id"); 
         NameValues = jb.getString("NameValue"); 

         List1.add(Id); 
         List2.add(NameValues); 
        } 


       } else { 
        StatusoutPut = response4.toString(); 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 
+0

此代碼無法正常工作 – nirmal

+0

您正在使用kso​​ap網絡服務?,請在您的異步任務中使用此方法做inbackground – Mano

+0

Id = jb.getString(「Id」);而不是這行使用你的--user_id,Booking_id它會起作用 – Mano

0

使用gson(來自google)庫。 從https://code.google.com/p/google-gson/downloads/list?can=1下載庫。 將下載zip文件放在libs文件夾中。

現在您必須創建一個類,您必須將所有必須從json解析到該類的json標記聲明爲該類。對於如

Class objClass{ 

String id; 

String booking_id; 

String user_id; 
... 
... 

String language_id; 

} 

現在你必須做出GSON

GsonBuilder gsonBuilder = new GsonBuilder(); 
Gson gson = gsonBuilder.create(); 

的對象現在,通過在gson.fromJson方法的JSON字符串。

objClass parseResponse = gson.fromJson(yourJsonResponse , objClass.class);