ObjectMapper 的目标是啥?
Posted
技术标签:
【中文标题】ObjectMapper 的目标是啥?【英文标题】:What is the objective of an ObjectMapper?ObjectMapper 的目标是什么? 【发布时间】:2013-03-14 21:23:56 【问题描述】:我不明白为什么在面向对象的开发中人们使用一些 ObjectMapper 类。你能解释一下这种课程的目的是什么吗?我也在寻找有关它的文档。我找到了很多解释如何创建它的信息,但没有关于如何以及为什么使用它的信息。你知道我在哪里可以找到一篇关于此的好文章和博客(如果可能,使用 C#)。
一定要理解的子问题。 ObjectMapper 是 C++ 中使用的东西吗?
谢谢。
【问题讨论】:
ObjectMapper
是 c# 类吗?您在哪个程序集中看到它?你的问题是关于AutoMapper
吗?
自定义 ObjetcMapper 用于多个项目,但不是 .NET 类。您可以在 GitHub、CodePlex 或此处找到许多 ObjectMapper 代码。
您是在问ObjectMapper
在 C# 中是否可用?还是映射器对象在一般情况下有用的问题?
映射器对象通常有用的地方......如果它们有用的话。
【参考方案1】:
对象到对象的映射不是编程语言相关的问题。
当对象到对象的映射派上用场时,有很多有用的场景。
一种常见的情况是,当您在域应用程序层中设计了业务对象模型并开发了处理这些对象的业务服务时。现在,如果您想向任何 UI 和/或客户端公开数据怎么办?您显然不想公开业务对象。映射来了!如果您正在处理 Web 服务,您可能会将您的业务对象转换为 DTO。如果消费 UI 是 MVC 应用程序,您可以将它们转换为 ViewModel……
希望这会有所帮助!
【讨论】:
【参考方案2】:对象映射器
此映射器(或数据绑定器或编解码器)提供了在 Java 对象(JDK 提供的核心类、bean 的实例)和匹配的 JSON 构造之间进行转换的功能。它将使用JsonParser 和JsonGenerator 的实例来实现JSON 的实际读/写。
据我所知,ObjectMapper 类与 C++ 无关。确实,它与 Java 有关。希望能帮助到你。无论哪种情况,您都可以参考以下链接以了解您的知识,
http://www.massapi.com/class/ob/ObjectMapper.html
【讨论】:
Java 对象?我认为 OP 是在 c# 的上下文中,不是吗? 是的,但我发现的仅与 JSON 和 JAVA 有关,如果您发现未提及的语言,请告诉我.. 不,我认为您的回答是正确的。我现在想知道这与 C# 有什么关系。 :)【参考方案3】:正如@Hiren Pandya 指出的那样,ObjectMapper
是一个 java 类,它有助于将 java 对象序列化和反序列化到 json 和从 json 序列化。
一般来说,当您有匹配的 json 属性(和结构)并且您不想自己编写所有映射代码时,这很有帮助。
对象映射器作为一种模式(甚至更通用)在许多场景中都很有用。每当您有两个在逻辑上属于同一概念的表示(类)时,您可能希望将数据从一个复制到另一个。
但我希望这会有所帮助,因为我写的这听起来很笼统。也许如果你给出一个你认为可能需要它的具体案例,它会更容易解决。
【讨论】:
以上是关于ObjectMapper 的目标是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何防止 ObjectMapper 成功将纯字符串反序列化为 Object?
Spring Boot 自定义Jackson ObjectMapper
理解异常的麻烦:“无法从 START_OBJECT 令牌中反序列化 `java.lang.String` 的实例”在 Jackson 中使用 ObjectMapper