2

我有以下字符串:["LankaBell","BillDesk"]

如何使用json-lib-2.2.3-jdk15.jar\net\sf\json库将其转换为 Java 列表对象?

编辑:如果不能使用这个库,那么使用其他库的解决方案也值得赞赏。

4

5 回答 5

6

使用 json-lib:

String source = "[\"LankaBell\",\"BillDesk\"]";
List<String> list = new ArrayList<>();
list = JSONArray.toList(JSONArray.fromObject(source), new Object(), new JsonConfig());

(实际上你可以使用 justJSONArray.toList(JSONArray.fromObject(source))但它已被弃用)

另一个未弃用的解决方案:

list = (List<String>) JSONArray.toCollection(JSONArray.fromObject(source))
于 2013-08-12T15:01:43.300 回答
2

我强烈推荐使用Jackson而不是 json-lib。

List<String> list = new org.codehaus.jackson.map.ObjectMapper().readValue("[\"LankaBell\",\"BillDesk\"]", List.class);
于 2013-08-12T15:04:32.477 回答
2
String input = "[\"LankaBell\",\"BillDesk\"]";

// net.sf.json.JSONArray
JSONArray jsonArray = JSONArray.fromObject(input);

List<String> list = new ArrayList<String>();

for (Object o : jsonArray) {
    list.add((String) o);
}

log.debug(list);
于 2013-08-12T15:10:22.240 回答
0
    String string = "[\"LankaBell\",\"BillDesk\"]";

    //Remove square brackets
    string = string.substring(1, string.length()-1);

    //Remove qutation marks
    string.replaceAll("\"", "");

    //turn into array
    String[] array = string.split(",");

    //Turn into list
    List<String> list = Arrays.asList(array);

    System.out.println(list);
于 2013-08-12T14:51:43.610 回答
0
Object[] objs = "[\"Lankabell\", \"BillDesk\"]".replaceAll("\\[|\\]|\"","").split(",");
于 2013-08-12T14:53:03.717 回答