[英]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.