Java 用Gson解析这个奇怪的嵌套hashmap
我有一个带有以下字段的对象,我正试图解析它,它来自一个Web服务:Java 用Gson解析这个奇怪的嵌套hashmap,java,gson,moxy,Java,Gson,Moxy,我有一个带有以下字段的对象,我正试图解析它,它来自一个Web服务: private String serviceGroup; private String serviceDefinition; private List<String> interfaces = new ArrayList<>(); private Map<String, String> serviceMetadata = new HashMap<>(); 这里额外的、不需要的部分
private String serviceGroup;
private String serviceDefinition;
private List<String> interfaces = new ArrayList<>();
private Map<String, String> serviceMetadata = new HashMap<>();
这里额外的、不需要的部分是serviceMetadata Hashmap中的“条目”数组。因此,当我试图使用Gson.fromJson(theString,myclass.class)
将json解析到我的对象中时,我得到一个com.google.Gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但却是BEGIN\u ARRAY
异常。我可以做什么来解析hashmap
顺便说一句,Web服务使用moxy封送对象 您将
servicematadata
定义为newhashmap()
但它应该是对象列表的映射
您的密钥是条目
,列表是:
[{
"key": "security",
"value": "token"
}, {
"key": "unit",
"value": "celsius"
}]
因此,解决方案是-创建一些类条目:
public class Entry{
private String key;
private String value;
}
现在:
private Map<String, List<Entry>> serviceMetadata = new HashMap<>();
private-Map-serviceMatadata=new-HashMap();
@键/值的一个数字映射,其中值是对象的列表。谢谢。我可以在9分钟内接受答案。
private Map<String, List<Entry>> serviceMetadata = new HashMap<>();