当前位置: 首页 > 知识库问答 >
问题:

如何将JSON解析为字符串列表?

胡永逸
2023-03-14

我有一个json文件。

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

我需要将它转换为String的ArrayList。如何使用Jackson库?

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);

共有1个答案

燕鸿波
2023-03-14

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

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

创建对象映射器

ObjectMapper mapper = new ObjectMapper();

以树的形式读取JSON字符串。因为我们知道它是一个对象,所以可以将JSONNODe强制转换为ObjectNode

ObjectNode node = (ObjectNode)mapper.readTree(json);
JsonNode arrayNode = node.get("data");
ArrayList<String> data = mapper.readValue(arrayNode.traverse(), new TypeReference<ArrayList<String>>(){});
System.out.println(data);

给出

[my/path/old, my/path/new]
 类似资料:
  • 问题内容: 我试图解析一个字符串,以分隔字符串中的列表。我目前有字符串: 有什么方法可以解析字符串,以便字典键是列表的第一个元素,而键的值是元素的下一个。例如: 问题答案: insted的的,你可以有列表: 您可以使用从字符串解析Python数据结构

  • 问题内容: 我有这个字符串:10,692,467,440,017.120(是一个数字)。 我想将其解析为BigDecimal。问题是我没有尝试过DecimalFormat和NumbeFormat。有什么帮助吗? 问题答案: 试试这个 如果要构建具有I18N支持的应用程序,则应使用 还请记住,它可能会引发a,因此您需要处理它(使用try / catch)或引发它,然后让程序的另一部分处理它

  • 问题内容: 我有一个弦 然后,我想将其解析为sqlDate。并将其插入数据库。 是否可以将该字符串解析为sqlDate?!?! 是的,SQL日期格式为“ yyyy-mm-dd” 问题答案: 用于将String日期解析为java.util.Date 然后使用millis将其转换为java.sql.Date

  • 问题内容: 我正在尝试解析以下JSONString 这是我的代码: 有人可以帮忙,我的代码不起作用吗?我想解析标题,公司名称,类别等… 问题答案: 您需要从您的jsonstring 创建。 你有里面然后..

  • 问题内容: 我具有以下值: 和以下类: 我想将其解析为a 或a 使用Jackson的 方法最简单? 问题答案: 我终于明白了:

  • 问题内容: 我有一个由pyspark数据框组成的一列,称为,其中每一行都是json的unicode字符串。我想解析每一行并返回一个新的数据框,其中每一行都是解析的json。 我已经尝试过使用: 但这返回一个 我怀疑是问题的一部分是从转换时到,架构信息丢失,所以我也尝试手动进入该模式的信息: 但是我也一样。 看着这个答案,似乎在这里将行扁平化可能很有用,但是我也没有成功: 我收到此错误:。 问题答案