将JSON数组从JavaScript传递到java,并将JSON数组转换为java数组
在我的应用程序中,我需要将JSON数组传递给java,然后使用java作为语言将该数组转换为java数组。这是代码 JavaScript将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
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。所以需要时间去理解