gpt4 book ai didi

java - 将 LinkedHashMap 转换为 Java 中的对象

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:33 31 4
gpt4 key购买 nike

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

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

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

背景:我有一个使用 JSON 对象的 JAX-RS 服务。我的服务处理不同种类的对象,只代表一个接口(interface)。所以我不知道哪些对象来自外部,哪些程序正在使用我的服务。

在运行时,我通过 @Inject 获取信息在我的界面上。 JAX-RS 服务将来自客户端的数据存储在一个非类型化对象中并自动完成(即 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;
}

并使用g将对象转换为JSON
jackson

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

谷歌 JSON

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

附言。使用 google json,您可以从类中删除 xml 注释

关于java - 将 LinkedHashMap<String,String> 转换为 Java 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12105687/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com