简体   繁体   English

将字符串的JSON数组转换为Java?

[英]Convert JSON array of strings to Java?

I am trying to convert a JSON String array to Java which is given from this piece of javascript: 我正在尝试将JSON字符串数组转换为Java,这是从这段javascript中给出的:

javaFunction(["a1", "a2"]); <--- This is called in javascript

In Java 在Java中

public static void javaFunction(<What here?> jsonStringArray){  //<---- This is called in Java
    //Convert the JSON String array here to something i can iterate through,
    //For example:

    for(int index = 0; index < convertedArray.length; index++){
        System.out.println(convertedArray[index];
    }
}

You can use this : 您可以使用:

List<String> list = new ArrayList<String>();
for(int i = 0; i < jsonStringArray.length(); i++){
  list.add(jsonStringArray.getJSONObject(i).getString("name"));
  }

I solved it using this: 我用这个解决了:

In the JavaScript: 在JavaScript中:

javaFunction(JSON.Stringify(["a1", "a2"]));

In Java 在Java中

public static void javaFunction(String jsonArrayString){
   JSONArray jsonArray = new JSONArray(jsonArrayString);
   List<String> list = new ArrayList<String>();
   for(int i = 0; i < jsonArray.length(); i++){
      list.add(jsonArray.getString(i));
   }
}

Trim first and last bracket; 修剪第一个和最后一个括号;

ie jsonArrayString = jsonArrayString.subStr(1,jsonArrayString.length()-1); jsonArrayString = jsonArrayString.subStr(1,jsonArrayString.length()-1);

you will get "a1","a2","a3","a4" 您将得到“ a1”,“ a2”,“ a3”,“ a4”

Then use String's split function. 然后使用String的split函数。

String[] convertedArray= jsonArrayString.split(",");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM