【问题标题】:Benefits of Mapping Json to Pojo?将 Json 映射到 Pojo 的好处?
【发布时间】:2017-03-14 14:06:54
【问题描述】:

我有一个返回大型 json 对象的休息端点(A)。我必须以不同的格式将其返回到另一个 rest api(B)。将其映射到对象,将数据转换为其他 REST API(B) 期望的对象是否有益?

使用 json 库并提取我需要的部分并以这种方式转换数据会更好吗?

谢谢

【问题讨论】:

  • Pojo 还是比object.getJSONArray().getJSONObject().get... 好不是吗?
  • 按方阵前往 Jackson 库,它将负责所有解析并直接扩展您的 POJO
  • @MuratK。这是。我只是想知道是否有更好的方法来处理响应。这是很多数据,我正在尝试优化。
  • 我更喜欢在我的 java 代码中使用 POJO,并且使用 JSON 进行传输。我的项目配置为传入一个 JSON 对象,并使用 GSON 将其转换为相关的 POJO。然后在响应期间,GSON 自动将 POJO 转换为 JSON。
  • A 和 B 都是 JSON 但结构不同? A有多大?代码会针对不同的请求同时运行吗?需要更多信息来评估任一选项的优缺点。顺便说一句,我们正在讨论进行两个 HTTP 调用,还是您要自己提供 B 的实现?

标签: java json rest pojo


【解决方案1】:

我将 Spring 用于我的 Web 应用程序。在我的上下文配置中,我有:

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="jacksonMessageConverter"/>
        </list>
    </property>
</bean>

然后在我的控制器代码中,我使用:

@RequestMapping(...)
public @ResponseBody MyPojo getMyPojo(@PathVariable("id") Integer id, @RequestBody MyOtherPojo) {
    MyPojo myPojo = new MyPojo();
    // do some business methods
    return myPojo
}

@ResponseBody MyPojo 告诉 jacksonMessageConverter 将 MyPojo 转换为 JSON 对象,@RequestBody 告诉 jacksonMessageConverter 将 JSON 变量转换为 MyOtherPojo 的实例。

【讨论】:

  • 这是“如何”。 OP想要“为什么?”。
猜你喜欢
  • 2017-03-31
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
相关资源
最近更新 更多