我阅读过各种帖子,并发现了类似的问题,但在寻找解决方案时一直没有成功。
JSONObject orr = (JSONObject)orderRows.get("orderRows");
System.out.println("data in orr = " + orr + "orr's type = " + orr.getClass());
返回:
orr中的数据 = {"470":[{"locationId":2,"quantity":1,"productId":1007}],"471":[{"locationId":2,"quantity":1,"productId":1008}]}orr的类型为 org.json.simple.JSONObject
我想把这些数据放入一个数组/列表/任何东西中,以便我可以使用键值 470、471 来检索数据。
任何建议或指针都十分感谢。谢谢...
澄清一下:
JSONObject orr = (JSONObject)orderRows.get("orderRows");
JSONArray orderOne = (JSONArray)orr.get("471");
System.out.println(orderOne);
System.out.println(orderOne.get(0));
JSONObject orderOneKey = (JSONObject)orderOne.get(0);
System.out.println(orderOneKey.get("productId"));
这就是我想要的,但很显然我不能使用orr.get("471"),因为我不知道这个数字是多少。
编辑: 显然我需要8小时后才能回答自己的问题:
在朋友的帮助下并经过一番摸索,我找到了一个解决方案。虽然它可能不是最简洁的,但确切地符合我的要求:
for(Object key: orr.keySet()) {
JSONArray orderOne = (JSONArray)orr.get(key);
JSONObject ordervalue = (JSONObject)orderOne.get(0);
System.out.println(ordervalue.get("productId"));
}
感谢大家的帮助和建议。