首页 > 解决方案 > Java中的JSON从字符串到字符串数组的映射

问题描述

我有一个类 pojo 类

class A{

    private List<String> colors;

    // getters and setters.


}

数据采用 json 格式。

来自数据库的数据是----A {"colors":""}

数据应输入 - A{"colors":["red"]}。

这里的问题是,java 无法将{"colors":""}字符串中的数据转换为数组{"colors":["red"]}。因此,我得到了InputMismatchException.

有什么办法可以转换{"colors":""}{"colors":["red"]}

我想知道如何在java中处理这个。

我正在使用杰克逊解析器将 json 转换为 java 对象。

标签: javajsoninputmismatchexception

解决方案


您想要的基本上是从 json 文件中加载颜色。假设 json 文件名为“colors.json”。您应该做的是使用可以从文件中读取并使用 json 对象的现有第三方 java 库之一。例如,您可以使用“org.json.simple”库。示例可以在这里找到: https ://www.mkyong.com/java/json-simple-example-read-and-write-json/

将文件“colors.json”读入 JSONParser 后,您将获得一个 JSONObject。使用此对象,您可以通过编写以下内容获取颜色列表:

JSONArray colors = (JSONArray) obj.get("colors");
Iterator<String> iterator = msg.iterator();
while (iterator.hasNext()) {
   String color = (String) iterator.next();
   // add color to collor's list here:
   ...
}

推荐阅读