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

使用jackson java将JSON转换为POJO作为对象类

齐起运
2023-03-14

我尝试使用DTO到JSON(在JSON文件中写入)和JSON到DTO(从JSON文件中读取)作为常用方法(不同pojo写入/读取操作使用的通用方法)

为了作为通用方法使用,我使用返回类型作为对象。

在我的代码下面

public String dtoToJSON(String appName, Object obj) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.INDENT_OUTPUT);
        String postJson = mapper.writeValueAsString(obj);
        System.out.println(postJson);

        // Save JSON string to file
        FileOutputStream fileOutputStream = new FileOutputStream("post.json");
        mapper.writeValue(fileOutputStream, obj);
        fileOutputStream.close();
        return appName;

    }

public Object jsonToDto() throws IOException {
         ObjectMapper mapper = new ObjectMapper();

            // Read JSON file and convert to java object
            InputStream fileInputStream = new FileInputStream("post.json");
            Object obj = mapper.readValue(fileInputStream, Object.class);
            fileInputStream.close();
        return obj;

    }
public static void main(String[] args) throws IOException {
          Transform ts=new Transform();

          Post post=(Post)ts.jsonToDto();

        // print post object
        System.out.println("Printing post details");
        System.out.println(post.getId());
        System.out.println(post.getTitle());
        System.out.println(post.getDescription());
        System.out.println(post.getContent());
        System.out.println(post.getLastUpdatedAt());
        System.out.println(post.getPostedAt());

    }
}

提前道谢。

共有1个答案

葛鸿熙
2023-03-14

它说线程“main”java.lang.ClassCastException:不能将java.util.LinkedHashMap转换为com.me.dto.post,这意味着ts.jsonTodTo()返回一个LinkedHashMap,不能转换为DTO。

你可以参考这里了解更多信息。

问题来自杰克逊。当它没有足够的关于要反序列化到哪个类的信息时,它使用LinkedHashMap。

 类似资料:
  • 问题内容: 我正在将Jersey用于REST WS,并且得到的响应为JSON。 我想将此响应转换为POJO。怎么做 ? 问题答案: 要在Java和JSON之间进行转换,有很多可供选择的API 。 您可以“手动”遍历JSON组件并提取值以填充Java对象,或者可以使用JSON到Java的绑定API来解决许多低级映射问题。

  • 问题内容: 我正在尝试使用GSON将JSON对象转换为POJO。 JSON字串 与GSON一起使用的AutomationProjectsList类 自动化项目POJO 我正在使用的代码 JSONArray jsonArray =新的JSONArray(response.getEntity(String.class)); 但是它给出了一个例外: 为什么会收到IndexOutOfBoundsExcep

  • 问题内容: 我有一个JSON对象,我将其转换为并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。 我正在研究Node V6.9.1 下面是我尝试过的代码,但是当我转换回JSON却无法打开该对象时遇到了。 所以我尝试使用检查方式打印整个对象 如果我尝试像数组一样读取它 我也尝试解析它抛出 我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。 请帮忙.. 问题答

  • 我正试图将下面的json转换成java bean,需要你的帮助 Sort.json 我的豆子看起来像 我的测试课是 我看到的错误是 请建议:

  • 问题内容: 这很简单,但是很挣扎。帮助我。 我有一个json数据{“ abc”:“ test”,“ bed”:“ cot”,“ help”:“ me”} 我想将上面的jsonObject转换为JSON ARRAY,例如[{“ abc”:“ test”,“ bed”:“ cot”,“ help”:“ me”}] 我只得到价值观。请帮我解决这个问题。 问题答案: 直接将JsonObject即obj放入

  • 问题内容: 我希望我的JSON看起来像这样: 到目前为止的代码: 和 我只是缺少如何使用Jackson将Java对象转换为JSON的部分: 我的问题是:我的课程正确吗?我必须调用哪个实例,以及如何实现此JSON输出? 问题答案: 要使用Jackson 转换JSON: