1

我有以下 JSON。在这个 JSON 中,我将“ticketDetails”作为 JSON 数组。我想从这个数组中检索 json 对象“amount”中的 ticketPrice 的值。我怎样才能做到这一点?

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

任何建议都会有所帮助...

4

3 回答 3

2

下面是ticketPrice从给定 JSONObject 中检索的示例代码:

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/

于 2013-10-21T09:38:42.220 回答
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/

于 2013-10-21T07:58:46.167 回答
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);
于 2013-10-22T06:16:53.417 回答