Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.json.simple.JsonArray无法获取JSONObject_Java_Arrays_Json - Fatal编程技术网

Java org.json.simple.JsonArray无法获取JSONObject

Java org.json.simple.JsonArray无法获取JSONObject,java,arrays,json,Java,Arrays,Json,你好,先谢谢你。我一直在开发REST Web服务,到目前为止效果不错。我决定使用json.simple库来处理提交给web服务的json函数,但我真的很难利用传递到方法中的JsonArray,如下所示。该数组由一个或多个JSON对象组成,这些对象在另一个类中拼凑在一起并传递到此方法中。在多次尝试以前的json.simple版本之后,我使用了json.simple 2.1.2,并希望从数组中获取每个JsonObject public createTransactions(JsonArray tra

你好,先谢谢你。我一直在开发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*

   }

}
publicCreateTransactions(JsonArray transArr){
对于(int i=0;i
输出

*[{目录id=1,数量=2,皮卡经度=-1.4578941,皮卡经度=33.45548978},{目录id=2,数量=3,皮卡经度=-1.4578941,皮卡经度=33.45548978},{目录id=1,数量=4,皮卡经度=-1.4578941,皮卡经度=33.45548978}] [{“目录标识”:1,“数量”:2,“皮卡经度”:-1.4578941,“皮卡经度”:33.45548978},{“目录标识”:2,“数量”:3,“皮卡经度”:-1.4578941,“皮卡经度”:33.45548978},{“目录标识”:1,“数量”:4,“皮卡经度”:-1.4578941,“皮卡经度”:33.45548978}]


无论我做什么,代码都会在这一点上停止。我已经在这上面呆了好几个晚上了。在这种方法中,我可以手动构建JsonArray,它工作得很好,可以循环使用它并分解每个JsonObject。当我用toString或toJson输出手动构建的JsonArray时,输出与上面的相同,尽管顺序不同。我已经用尽了在stackOverflow和google上可以找到的所有示例,因此非常感谢您的帮助。

您可以使用迭代器获取json对象

Iterator i = transArr.iterator();
JSONObject slide = i.next();
//do whatever you need

这对我来说很好。可能是传递到方法中的JsonArray的构造有问题。我的测试代码:
JsonArray JsonArray=newjsonarray();JsonObject obj=新的JsonObject();obj.put(“测试”、“测试值”);对象put(“testI”,新整数(1));JsonObject obj_1=新的JsonObject();obj_1.put(“测试”、“测试值”);obj_1.put(“testI”,新整数(2));jsonArray.add(obj);jsonArray.add(obj_1);createTransactions(jsonArray)谢谢,我的想法可能与我可以在方法中构建一个相同。谢谢你,我也来试试。