JsonArray到Arraylist Conversion

时间:2015-11-22 18:17:49

标签: java json

我需要将Json格式的String转换为List对象,我在程序下面使用它。

public class JsonStringToListConversion {

    public static void main(String[] args) {
        String userProfile = "{\"name\":\"Arun\", Skills:[\"Java\",\"Spring\",\"hibernate\"]}";
        JSONObject userProfileJO = (JSONObject)JSONSerializer.toJSON(userProfile);
        List<String> skills = new ArrayList<String>();
        skills = (List<String>)userProfileJO.getJSONArray("Skills");
        System.out.println(skills);
    }
}

我正在使用Java 1.6和JSON-lib 2.4

请帮助我知道这是否是正确的方法?

特别是我将JSONArray类型转换为List并且它是否正常工作?

2 个答案:

答案 0 :(得分:0)

在内部,这个JsonArray实现了列表接口,因此类型转换为List非常好。此外,迭代每个元素将逐个访问列表,这将是开销(性能影响)。

如果需要替代方法,可以使用同一JsonArray类中的toCollection静态方法

答案 1 :(得分:0)

在 Java 8+ 中,解决方案可以在一行中实现。

List<String> elementsList = myJsonArray.toList()
    .stream().map(x -> Objects.toString(x))
    .collect(Collectors.toList());

如果你想要一个不同的变量而不是 String,你可以改变列表 Vector 和适当的转换函数 (Objects.toString(object))。