gson.fromJson(JsonReader,type)返回null

时间:2017-09-04 14:03:29

标签: java json gson

这是我的考试代码

Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
    JsonWriter jsonWriter = null;
    try {
        jsonWriter = new JsonWriter(
                new OutputStreamWriter(new FileOutputStream(new File("D:/test.json")), "UTF-8"));

        List<String> stringList = new ArrayList<String>();
        stringList.add("aaaaaaaaaaaaaaaaaaaaaa");
        stringList.add("bbbbbbbbbbbbbbbbbbbbbbbb");
        stringList.add("ccccccccccccccccccccccdd");
        Data data = new Data();
        data.setFucName("addXkg");
        data.setSqlList(stringList);

        gson.toJson(data, Data.class, jsonWriter);

        Gson gson1 = new Gson();
        File file = new File("D:/test.json");
        if (file.exists()) {
            JsonReader jsonReader = new JsonReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));

// jsonReader不为null,当来到data2时,它在控制面板中显示为null

Data data2 = gson1.fromJson(jsonReader, new TypeToken<Data>() {
            }.getType());
            System.out.println(data2);
            for (String string : data2.getSqlList()) {
                System.out.println(string);
            }
        }

并且在for()函数前面返回null,为什么?

1 个答案:

答案 0 :(得分:0)

我发现哪里出错,只需删除Gson gson1 = new Gson();上方的代码即可。 但有人可以解释一下吗?为什么...