所以我有点卡住了。我正在使用JSon,我正在尝试从JSON文件中获取所有不同订单的total_price。我可以阅读该文件,但是我遇到了获取该特定信息的问题,然后将其全部加起来。
这是我到目前为止的代码。
$('#grdEstabelecimentosEncontrados').on('click', '.btn-success', function(e){
//this code will run for all current
//and future elements with the class of .btn-success
});
对于JSON文件:
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader(
"/orders.json"));
JSONObject jsonObject = (JSONObject) obj;
JSONArray orderList = (JSONArray) jsonObject.get("orders");
System.out.println("\norders");
Iterator<String> iterator = orderList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
obj = parser.parse(sCurrentLine);
JSONArray jsonArray = (JSONArray) obj;
for(obj : jsonArray){
JSONObject jsonObject = (JSONObject)obj;
JSONObject realTitle = (JSONObject)jsonObject.get("0");
String name = (String) realTitle.get("title");
}
} catch (Exception e) {
e.printStackTrace();
}
}
我得到的错误是(obj:jsonArray)引起了我的问题,老实说,我认为我甚至没有走上正确的道路。
非常感谢您的帮助!
答案 0 :(得分:0)
您的代码有明显的编译时错误。在for循环中,您再次尝试执行get(0),这是不正确的。
我已经改进了代码。
试试这个。它给出了正确的结果如下
每笔订单的价格数据 - {4251070723 = 179.04,4251070787 = 14.62}。
所有订单的总价格--193.66
public static void main(String[] args) {
JSONParser parser = new JSONParser();
Map<String, String> priceData = new HashMap<>();
BigDecimal totalPrice = BigDecimal.ZERO;
String orderId = null;
String orderPrice = null;
try {
String sCurrentLine = null;
Object obj = parser.parse(new FileReader(
"orders.json"));
JSONObject jsonObject = (JSONObject) obj;
JSONArray orderList = (JSONArray)(jsonObject.get("orders"));
System.out.println("Complete order list --"+orderList.toString());
for(Object singleOrder : orderList) {
JSONObject singleArrayData = (JSONObject) singleOrder;
orderId = singleArrayData.get("id").toString();
orderPrice = singleArrayData.get("total_price").toString();
priceData.put(orderId, orderPrice);
totalPrice = totalPrice.add(new BigDecimal(orderPrice));
}
System.out.println("The price data of each order --"+priceData.toString());
System.out.println("The total Price of all order --"+totalPrice);
} catch (Exception e) {
e.printStackTrace();
}
}