当前位置: 首页 > 面试题库 >

转换LinkedHashMap 到Java中的对象

党建义
2023-03-14
问题内容

我将直接从问题开始,稍后再提供更多背景信息。

简单 :我有一个LinkedHashMap<String, String>,它代表一个特定的对象。将其转换为该对象的最佳方法是什么?

我知道您可以使用泛型来遍历所有元素并设置字段,但是什么是嵌套对象呢?

背景 :我有一个使用JSON对象的JAX-
RS服务。我的服务处理不同类型的对象,仅代表一个接口。因此,我不知道哪些对象来自外部以及哪个程序正在使用我的服务。

在运行时,我通过@Inject界面上的信息。JAX-
RS服务将来自客户端的数据存储在未类型化的Object中,并自动完成(即LinkedHashMap<String, String>)。

在我的界面中,我想提供一个类似的方法setObject,参数应该是该类型的对象。我可以处理所有这些,但不能处理将对象转换为LinkedHashMap<String, String>特定对象的部分。

示例结构 :目标对象可以这样

public class Document {
    private String title;
    private String id;
    private int version;
}

LinkedHashMap看起来像

{title=some title, id=1, version=1}

问题答案:

您可以创建两个类

@XmlAccessorType(XmlAccessType.FIELD) 
public class Document {
    @XmlElement
    private String title;
    @XmlElement
    private String id;
    @XmlElement
    private int version;
}


@XmlAccessorType(XmlAccessType.FIELD)
public class MapJson {
    @XmlElement
    private LinkedHashMap<String, String> documents; 
}

和cobvert对象JSON usingg
杰克逊

new org.codehaus.jackson.map.ObjectMapper().writeValueAsString(instanceofMapJson);

谷歌JSON

new com.google.gson.Gson().toJson(instanceofMapJson);

PS。使用google json,您可以从类中删除xml批注



 类似资料:
  • 问题内容: 我有一个应用程序,该应用程序使用Jackson将我的复杂对象编组为JSON,从而在DynamoDB中存储一些数据。 例如,我要编组的对象可能如下所示: SomeObject可能看起来像这样: 和SomeOtherObject可能看起来像这样: 可以很好地将对象整理成问题并将其作为JSON字符串存储在数据库中。 当需要从DynamoDB检索数据时,Jackson会自动检索JSON并将其转

  • 某个物体可能看起来像这样: 另一个物体可能是这样的: 这很好,因为对象被封送,没有问题,并以JSON字符串的形式存储在DB中。

  • 如何将对象转换为

  • 我有一个JSF应用程序,除了调用ManagedBean中以对象为参数的方法外,其他一切都运行得很好: 在SCONTR中: 所有没有自己定义的对象的方法都可以工作(例如,映射、字符串、列表等),访问xhtml中的对象甚至子对象就像一个魅力。 但是,调用此deletePrivilege会导致: 因此,出于某种原因,JSF无法将LinkedHashMap自动转换回用于呈现页面的类的实例。 faces-c

  • 问题内容: 我正在使用Jongo与Mongo一起工作,当我执行查询时会收到结果。 问题是,如果json是content ,它将不是from的唯一方法。 我如何获得原件? 我没有要映射的地图,也不是创建类的解决方案,这就是为什么我使用 问题答案: 如果您可以访问某些JSON库,那似乎就是这样。 如果使用org.json库,请使用: 如果是Gson,请使用@hellboy提到的方法:

  • 我正在寻找更好的性能(转换时间应该非常少)。 本文显示的是来自这个答案的不同API之间的性能统计。 例如,我的发现是我提到的第一个链接(只有很少的记录): null 请帮帮我。