繁体   English   中英

如何从JSON数组中检索JSON对象

[英]how to retrieve JSON object from the JSON array

我有以下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
        }
    }]
}

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

下面是从给定的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/

将数据存储在变量中

  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/

你可以试试这段代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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