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

在Spring中将pojo转换为JSON的最佳方法是什么

薛墨一
2023-03-14

在Spring项目中,我需要将POJO字符串转换为JSON字符串。我知道Spring MVC提供了一种通过annotate@ResponseBody在控制器中返回json的方便方法,我想知道Spring是如何在内部将pojo转换为json的?从Spring MVC maven dependencies hierachy中,我找到了jackson-databind和jackson-core库。在阅读杰克逊教程时,它说了不同的库:

<dependencies>
  <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.8.5</version>
  </dependency>
</dependencies>
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("c:\\user.json"), user);

3:在Spring项目中将POJO转换为JSON的最佳方法是什么--不使用@responsebody,因为我想将POJO转换为JSON并将其保存到数据库中,@responsebody用于restful服务,不适合我的情况。

非常感谢你事先的回答。

共有1个答案

郎恺
2023-03-14

如果您不想使用Spring MVC将对象转换为JSON字符串,可以这样做:

private JsonGenerator jsonGenerator = null;
private ObjectMapper objectMapper = null;
public void init(){
  objectMapper = new ObjectMapper();
  try{
     jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);
     jsonGenerator.writeObject(bean); 
     objectMapper.writeValue(System.out, bean);
  }catch (IOException e) {
        e.printStackTrace();
  }
  jsonGenerator.flush();
  jsonGenerator.close();
}

您必须像这样声明bean

public class AccountBean {
    private int id;
    private String name;
    private String email;
    private String address;
    private Birthday birthday;

    //getters, setters

    @Override
    public String toString() {
        return this.name + "#" + this.id + "#" + this.address + "#" + this.birthday + "#" + this.email;
    }
}
 类似资料:
  • 我试图想出一个好的解决方案来将字符串转换为json格式,但我不知道它是否足够好。 我想我可能会使用str.replace from(to{,并在}{之间插入逗号,但我如何找到要插入的索引?“”代表Name、Author、fileSize呢?在转换为可读的json字符串之后,我可以序列化为json(由GSON/Jackson)。

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

  • 我必须以JSON格式转换数据表单以发送到webAPI。 我有一个从第1页调用的弹出表单: 第1页有以下代码: 输出JSON不正确。代码返回如下字符串: ! DOCTYPE html 什么是最好的方法来字符串化输入数据?我哪里错了?

  • 问题内容: 将数字转换为字符串的“最佳”方法是什么(就速度优势,清晰度优势,内存优势等而言)? 一些例子: 问题答案: 像这样: 实际上,即使我通常是为了简单方便而这样做,但 对于原始速度而言 ,似乎出现了1000多次迭代,但 对于 根据上述JSPerf测试最快: 应该注意的是,当您认为速度差异可以在0.1秒内进行1百万次转换时,速度差异并不是太大。 更新: 速度因浏览器而异。在Chrome中,根

  • 问题内容: 有什么好的工具可以在Java中快速轻松地将XML转换为JSON? 问题答案: Java中的 JSON有一些很棒的资源。 Maven依赖项: XML.java 是您要寻找的课程: 输出为:

  • 我的应用程序是关于艺术家画墙壁的。 在这一点上,艺术家有许多墙,墙属于艺术家。 但现在我想使可能的一面墙归属许多艺术家。( 我想不出解决这个问题的最好办法。那么: 1-一个旋转台:艺术家的墙壁,那里有许多艺术家和艺术家的墙壁 •可能吗?还是双方都必须有自己的关系? • 2-我的墙表中的艺术家ID数组 •那么我想我会失去这段雄辩关系的好处 看起来很脏 有什么经验可以分享吗?够清楚吗?我用的是拉威尔5

  • 问题内容: 任何数字,就是数字。字符串看起来像一个数字,它是数字。其他所有内容,全都归NaN。 问题答案: 据我所知,有4种方法可以做到这一点。 通过我进行的这项快速测试,它实际上取决于浏览器。 标记为3种浏览器中最快的,但是它使代码难以阅读…因此,请选择您喜欢的任何方式!

  • 我有课 我有一个JSON请求 我有一个REST API 当我调用此API并可视化此student对象时,这两个字段都有我提供的请求中的值。 我不明白的是: JSON值如何直接映射到学生类对象 是否涉及序列化/反序列化 建构师在学生课堂上有什么重要性吗