首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在后端服务中使用JSON对象或POJO?

在后端服务中使用JSON对象或POJO?
EN

Software Engineering用户
提问于 2015-01-30 18:52:13
回答 4查看 15K关注 0票数 1

我正在为移动客户建立一个后端服务。

其要求是移动客户端将向我传递一个令牌,我将使用该令牌与公司中的其他系统(在公司防火墙后面)进行通信,并向用户返回一些信息。

下面是一个典型的场景:

移动客户端请求一些客户数据,并与客户令牌进行呼叫。我对客户数据库系统使用令牌,并获取客户详细信息。然后,我将数据(删除一些与此无关的字段)返回给移动客户端。

系统之间的所有数据(me、移动客户端、客户数据库)都使用JSon。

问题是我是应该通过代码处理JSon对象,还是尝试使用POJO?

现在,在返回客户端之前,我只需要从客户数据库中删除一些字段。

未来可能需要更多涉及到的转换,但我不能确定这是否会发生或转换的性质。

谢谢

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2015-01-30 19:37:59

将序列化方法(JSON)与业务逻辑分离通常是一个好主意,这样如果将来您决定使用其他类型的序列化,则可以在不影响业务逻辑的情况下这样做。

杰克逊可能是Java中最流行的用于JSON序列化/反序列化的开源库。

在从客户数据库接收到的数据与实际返回给调用方的数据之间需要进行某种转换的情况下,我通常创建一个单独的DTO (数据传输对象)类,它只包含要序列化的字段。

另一方面,如果您总是需要在发送之前从客户数据中删除相同的字段,并且不介意在POJO上添加特定于序列化的注释,则可以在这些字段上使用Jackson的@JsonIgnore (或类似的)并跳过DTO。

票数 7
EN

Software Engineering用户

发布于 2015-02-01 23:29:30

我会选择最简单和最简单的解决方案,这将满足您当前的需求。

正如您所提到的,您所需要的只是删除两个字段,json操纵就足够了,它非常简单。

将来,正如您所相信的那样,如果涉及到更复杂的转换(使用json操作并不容易),您可以轻松地在中间添加DTO并进行转换。由于您正在获得json并发送回json,因此添加DTO不会影响任何外部系统。

票数 2
EN

Software Engineering用户

发布于 2015-02-02 04:08:07

这是一个经典的权衡性能+易用性与可伸缩性和可伸缩性。

POJO具有很高的性能,很容易在Java程序中使用。但它们仅限于一个VM。您不能将POJO传递给另一个VM、另一个服务器或其他未用Java实现的进程。要将POJO传递给另一个VM中的Java程序,需要在接收过程中序列化POJO并反序列化它。默认的Java序列化方法在历史上一直非常依赖于所使用的Java版本。

JSON格式的消息可以在进程之间、服务器之间传递,也可以方便地被Javascript、php、python、C++等Java程序读取。

使用JSON (或XML :-)的其他好处包括易于调试(您只需读取消息)和测试(创建、存储和复制在测试框架中使用的JSON消息非常简单)。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/271663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档