【发布时间】:2012-10-17 23:41:11
【问题描述】:
JSON 对象和 DTO(数据传输对象)是一回事,还是完全不同?在 REST 架构的情况下,传入的 HTTP 请求可以从客户端以 JSON 格式发送,然后在服务器端收到后序列化为 CLR 对象。
在这种特殊情况下,JSON 会被视为 DTO,还是将序列化对象称为 DTO?
我对多个系统之间的数据传输非常陌生,因此非常感谢您的帮助。
【问题讨论】:
JSON 对象和 DTO(数据传输对象)是一回事,还是完全不同?在 REST 架构的情况下,传入的 HTTP 请求可以从客户端以 JSON 格式发送,然后在服务器端收到后序列化为 CLR 对象。
在这种特殊情况下,JSON 会被视为 DTO,还是将序列化对象称为 DTO?
我对多个系统之间的数据传输非常陌生,因此非常感谢您的帮助。
【问题讨论】:
DTO 只是一种用于表示数据的设计模式,可以格式化为 JSON、XML 甚至其他格式。
JSON 是序列化的类型。 DTO 是序列化的对象。
除此之外:JSON 不仅仅是数据传输,但我认为细节在您的问题中并不重要。重要的是,如果您使用 JSON 的行为方面,您将不再处理 DTO,因为 DTO 应该是无行为的。
【讨论】:
正如 Fenton 的回答所提到的,DTO(数据传输对象)是一个概念,而不是任何具体的东西
JSON、XML 等本身就是规范,这就是我认为他所说的“JSON 是序列化的类型。DTO 是序列化的对象”的意思。
根据martinfowler.com 的帖子,我认为“您可以将 DTO 序列化为 JSON”是正确的术语。 IE。 JSON 对象可以是 DTO。
【讨论】: