您好,并提前谢谢您。我一直在开发一个REST Web服务,到目前为止一直很好。我决定使用json.simple库来处理提交给Web服务的JSON函数,但我真的很难利用JsonArray,我将其传递给下面的方法。该数组由一个或多个JSON对象组成,这些对象已在另一个类中拼凑在一起并传递给此方法。在经过多次尝试之前的json.simple版本后,我使用了json.simple 2.1.2,并希望从数组中获取每个JsonObject。
public createTransactions(JsonArray transArr){
for (int i = 0; i < transArr.size(); i++){
try {
Object obj = transArr.get(i); //Works Fine
//but
JsonObject transJsonObj = (JsonObject)transArr.get(i);
//Doesn't work, the stack trace shows no error but this doesn't
// run (outside the try it stops execution again with the stack
// trace showing no error.)
} catch (Exception e){
e.printStackTrace();
}
System.out.println(transArr.toString());
System.out.println(transArr.toJson());
//both work output below*
}
}
输出
* [{catalogue_id = 1,qty = 2,pickup_longitude = -1.4578941,pickup_latitude = 33.45548978},{catalogue_id = 2,qty = 3,pickup_longitude = -1.4578941,pickup_latitude = 33.45548978},{catalogue_id = 1,qty = 4,pickup_longitude = -1.4578941,pickup_latitude = 33.45548978}] [{&#34; catalogue_id&#34;:1,&#34;数量&#34;:2&#34; pickup_longitude&#34;: - 1.4578941&#34; pickup_latitude&#34;:33.45548978},{& #34; catalogue_id&#34;:2&#34;数量&#34;:3,&#34; pickup_longitude&#34;: - 1.4578941&#34; pickup_latitude&#34;:33.45548978},{&#34; catalogue_id&#34;:1,&#34;数量&#34:4,&#34; pickup_longitude&#34;: - 1.4578941&#34; pickup_latitude&#34;:33.45548978}]
无论我做什么,代码都会停止。我现在已经被困在这个夜晚了。我可以在这个方法中手动构建JsonArray,这可以正常工作,并可以遍历它并打破每个JsonObject。当我使用toString或toJson输出手动构建的JsonArray时,输出与上面相同,但顺序不同。我已经用尽所有可以在stackOverflow和google上找到的示例,所以我们非常感谢您的帮助。
答案 0 :(得分:0)
您可以使用迭代器来获取json对象
Iterator i = transArr.iterator();
JSONObject slide = i.next();
//do whatever you need