我有一个json文件。

{
    "data" : [
        "my/path/old",
        "my/path/new"
    ]
}

我需要将int转换为String的ArrayList。如何使用Jackson库进行操作?
UPD:
我的代码:
Gson gson = new Gson();
JsonReader reader = new JsonReader(new InputStreamReader(FileReader.class.getResourceAsStream(file)));

List<String> list = (ArrayList) gson.fromJson(reader, ArrayList.class);

for (String s : list) {
    System.out.println(s);
}

我的例外:
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected value at line 1 column 1

我的新更新
UPD2:
Gson gson = new Gson();
Type list = new TypeToken<List<String>>(){}.getType();
JsonReader reader = new JsonReader(new InputStreamReader(FileReader.class.getResourceAsStream(file)));
List<String> s = gson.fromJson(reader, list);
System.out.println(s);

最佳答案

您已经标记了Jackson,但在示例中使用的是Gson。我要和杰克逊一起去

String json = "{\"data\":[\"my/path/old\",\"my/path/new\"]}"; // or wherever you're getting it from


创建您的ObjectMapper

ObjectMapper mapper = new ObjectMapper();


读取JSON字符串作为树。由于我们知道它是一个对象,因此可以将JsonNode强制转换为ObjectNode

ObjectNode node = (ObjectNode)mapper.readTree(json);


获取名为JsonNodedata

JsonNode arrayNode = node.get("data");


将其解析为ArrayList<String>

ArrayList<String> data = mapper.readValue(arrayNode.traverse(), new TypeReference<ArrayList<String>>(){});


列印

System.out.println(data);




[my/path/old, my/path/new]

关于java - 如何将JSON解析为字符串列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22873521/

10-09 06:53