我需要将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并且它是否正常工作?
答案 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))。