对象,将LinkedHashMap转换为Java中的对象"/>
java hashmap 转对象,将LinkedHashMap转换为Java中的对象
我将直接从我的问题开始,然后我会提供更多背景信息.
简单:我有一个LinkedHashMap< String,String>它代表一个特定的对象.
将它转换为该对象的最佳方法是什么?
我知道您可以使用泛型来遍历所有元素并设置字段,但什么是嵌套对象?
背景:我有一个消耗JSON对象的JAX-RS服务.我的服务处理不同类型的对象,只代表一个接口.所以我不知道哪些对象来自外部以及哪个程序正在使用我的服务.
在运行时,我通过我的界面上的@Inject获取信息. JAX-RS服务将来自客户端的数据存储在无类型的Object中,并自动完成(即LinkedHashMap< String,String>).
使用我的界面,我想提供类似setObject的方法,参数应该是该类型的对象.我可以处理所有这些,但不是我转换Object 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 documents;
}
和cobvert对象到JSON使用
杰克逊
new org.codehaus.jackson.map.ObjectMapper().writeValueAsString(instanceofMapJson);
谷歌JSON
new com.google.gson.Gson().toJson(instanceofMapJson);
PS.使用google json,您可以从类中删除xml注释
标签:json,java,jax-rs,jaxb
来源: .html
更多推荐
java hashmap 转对象,将LinkedHashMap转换为Java中的对象
发布评论