Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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
将JSON数组从JavaScript传递到java,并将JSON数组转换为java数组_Java_Javascript_Android_Arrays_Json - Fatal编程技术网

将JSON数组从JavaScript传递到java,并将JSON数组转换为java数组

将JSON数组从JavaScript传递到java,并将JSON数组转换为java数组,java,javascript,android,arrays,json,Java,Javascript,Android,Arrays,Json,在我的应用程序中,我需要将JSON数组传递给java,然后使用java作为语言将该数组转换为java数组。这是代码 JavaScript function arraytofile(rans) { myData.push(rans); // rans is the random number var arr = JSON.stringify(myData);// converting to json array android.arraytofile(a

在我的应用程序中,我需要将JSON数组传递给java,然后使用java作为语言将该数组转换为java数组。这是代码

JavaScript

  function arraytofile(rans)
  {
      myData.push(rans); // rans is the random number
      var arr = JSON.stringify(myData);// converting to json array
      android.arraytofile(arr); // passing to java
  }
Java

  public void arraytofile(String newData) throws JSONException {
      Log.d(TAG, "MainActivity.setData()");
      System.out.println(newData);
  }

newData
正在将数据打印为
[[2]、[3]、[4]]…
我想要常规java数组。我怎样才能做到这一点

您可以使用
谷歌gson
。一个优秀的
Java
库,可用于
JSON

在这里找到它:

使用gson库类,您可以执行以下操作:

    // I took a small sample of your sample json
    String json = "[[2],[3],[4]]";
    JsonElement je = new JsonParser().parse(json);
    JsonArray jsonArray = je.getAsJsonArray();
    // I'm assuming your values are in String, you can change this if not
    List<String> javaArray = new ArrayList<String>();
    for(JsonElement jsonElement : jsonArray) {
        JsonArray individualArray = jsonElement.getAsJsonArray();
        JsonElement value = individualArray.get(0);
        // Again, I'm assuming your values are in String
        javaArray.add(value.getAsString());
    }
//我从您的示例json中提取了一个小样本
字符串json=“[2]、[3]、[4]]”;
JsonElement je=新的JsonParser().parse(json);
JsonArray JsonArray=je.getAsJsonArray();
//我假设您的值是字符串,如果不是,您可以更改它
List javaArray=new ArrayList();
for(JsonElement JsonElement:jsonArray){
JsonArray individualArray=jsonElement.getAsJsonArray();
JsonElement value=individualArray.get(0);
//同样,我假设您的值是字符串
add(value.getAsString());
}
现在您的json是Java
列表
。基本上就是数组

如果您知道结果的确切数量,您肯定可以定义一个固定大小的数组,然后为其赋值

如果您知道
Java
,那么您已经知道如何从这里开始


我希望这会有所帮助。

使用类似Jackson或Gson的JSON解析器库。使用你最喜欢的搜索引擎优化在网上进行检查并不难。@MohammadAdil不,请不要。作为Java的JSON库,任何东西都比org.JSON好。请。@fge OMG。。这有什么问题吗?我个人在我的项目中使用它。如何实现?我正在学习java。所以需要时间去理解