2013-10-21 74 views
1

我有下面的JSON。在這個JSON中,我將「ticketDetails」作爲JSON數組。從這個數組中,我想檢索json對象「amount」內的ticketPrice的值。我怎樣才能做到這一點?如何從JSON數組中檢索JSON對象

{ 
    "ticketDetails": [{ 
     "seq": 1, 
     "qty": 2, 
     "amount": { 
      "ticketPrice": 120, 
      "bookingFee": 50 
     }, 
     "session": { 
      "id": 1001, 
      "date": "2013, 9, 15", 
      "time": "1300" 
     }, 
     "venue": { 
      "id": "MTRG", 
      "name": "Adlabs Manipur", 
      "companyCode": "ADLB" 
     }, 
     "event": { 
      "id": "ET00000001123", 
      "name": "Chennai Express", 
      "producerCode": "YRF" 
     }, 
     "category": { 
      "ttypeCode": "00012", 
      "areaCatCode": "2414", 
      "type": "Gold", 
      "price": 270 
     } 
    }] 
} 

任何建議將很有幫助...

+2

其中你使用的編程語言? JavaScript的?順便說一句,''輸入代碼在這裏''讓你的JSON無效。 –

+0

我正在使用java。 – swarup

+0

是否有一個原因ticketDetails是一個數組?如果您想要一個非常模塊化,面向對象的解決方案,您可以查看[GSON](https://code.google.com/p/google-gson/)庫。這可能是矯枉過正,但它是值得快速的。你將本質上反序列化JSON到它各自的java對象中,然後使用getter來檢索你想要的數據。 – Franklin

回答

0

可以試試這個代碼:

JsonObject transactiondata = (JsonObject)Offer.get("transData"); 
JsonObject ticketdata = (JsonObject)transactiondata.get("tickets"); 
JsonObject offerData = (JsonObject)Offer.get("offerData"); 
JsonObject offerData1 = (JsonObject)offerData.get("offerconfig"); 

JsonArray jsonarr= (JsonArray)ticketdata.get("ticketDetails"); 

double ticketPrice = Double.parseDouble(jsonarr.get(0).getAsJsonObject().get("amount").getAsJsonObject().get("ticketPrice").getAsString()); 
System.out.println("ticketPrice:"+ticketPrice); 
1

你存儲中的變量

data = {...} 

那麼你的數據,你訪問它是這樣的:

data.ticketDetails[0].amount.ticketPrice 

如果ticketDetails有多於一個元素

您可以循環在ticketDetails陣列和存儲的其他陣列中的所有ticketPrice值,ticketPriceArray

下面將在JavaScript中正常工作:

var ticketPriceArray = data.ticketDetails.map(function(k){ 
return k.amount.ticketPrice; 
}); 

,如果你使用的是其他編程語言中的普通環形就做工精細也

for (i; i< ticketDetails.length ; i++){ 
    ticketPriceArray[i] = data.ticketDetails.amount.ticketPrice[i]; 
} 

對於Java檢查本教程: http://answers.oreilly.com/topic/257-how-to-parse-json-in-java/

2

下面是從給定的JSONObject檢索ticketPrice示例代碼:

JSONObject objData = (JSONObject)JSONSerializer.toJSON(data); 
JSONArray objTicketDetailsJsonArr = objData.getJSONArray("ticketDetails"); 
for(int nSize=0; nSize < objTicketDetailsJsonArr.size(); nSize++){ 
    String ticketPrice = ""; 
    ticketPrice = objTicketDetailsJsonArr.getString("ticketPrice"); 
} 

下面是上面的代碼進口:

import net.sf.json.JSONArray; 
import net.sf.json.JSONObject; 
import net.sf.json.JSONSerializer; 

JAR的源:http://json-lib.sourceforge.net/