我将直接从我的问题开始,然后提供更多背景信息。
Simple: 我有一个LinkedHashMap<String, String>
它代表一个特定的对象。
将其转换为该对象的最佳方法是什么?
我知道您可以使用泛型来获取所有元素并设置字段,但是什么是嵌套对象?
背景:我有一个使用 JSON 对象的 JAX-RS 服务。我的服务处理不同类型的对象并且仅代表一个接口。所以我不知道哪些对象来自外部以及哪个程序正在使用我的服务。
在运行时我通过获取信息@Inject
在我的界面上。 JAX-RS 服务将来自客户端的数据存储在非类型化对象中,并自动完成(这就是LinkedHashMap<String, String>
).
通过我的界面,我想提供一个类似的方法setObject
并且参数应该是该类型的对象。我可以处理所有这些,但不能处理转换对象的部分LinkedHashMap<String, String>
到那个特定的对象。
结构示例:
目标对象可能会喜欢这样
public class Document {
private String title;
private String id;
private int version;
}
The 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;
}
并将对象转换为 JSON 使用
杰克逊
new org.codehaus.jackson.map.ObjectMapper().writeValueAsString(instanceofMapJson);
谷歌 JSON
new com.google.gson.Gson().toJson(instanceofMapJson);
附言。使用 google json,您可以从类中删除 xml 注释
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)