首页 > 解决方案 > 创建的 json 文件中的问题

问题描述

您好,我在将对象转换为 json 文件时遇到问题。

private static void convertToJson() {
    Gson json = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

        try (FileWriter jsonFile = new FileWriter("userFile.json")) {
            for(User userToConvert : userList) {
                String jsonFormat = json.toJson(userToConvert);
                System.out.println(jsonFormat);
                jsonFile.write(jsonFormat);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
}

在创建的 json 文件中,我得到了这个输出

{"username":"user1","password":"user1","email":"user@user.com"}{"username":"user2","password":"user2","email": “用户@user.com”}

第二行加下划线并表示: JSON 标准只允许一个顶级=级别值

我究竟做错了什么 ?

标签: javaarraysjson

解决方案


解决方案是:

private static void convertToJson() {
    Gson json = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
    List jsonArrayList = new ArrayList<User>();
        try (FileWriter jsonFile = new FileWriter("userFile.json")) {
            for(User userToConvert : userList) {
                jsonArrayList.add(userToConvert);
            }
            String usersArray = json.toJson(jsonArrayList);
            jsonFile.write(usersArray);

        } catch (IOException e) {
            e.printStackTrace();
        }

奇迹般有效 !


推荐阅读