gpt4 book ai didi

java - HashMap to gson with maps as values

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

我想使用这种方法将HashMap 转换为JSON 格式:

public String JSObject(Object object) {
Gson gson = new Gson();
return gson.toJson(object);
}

但问题是,当我的 HashMap 将另一个 HashMap 作为结果中的键时,我在 JSON 中什么也没有。假设我在 Java 中有这样的东西:

put("key", HashMap);

转换后我的 JSON 如下所示:

"key" : {}

我想要的显然是其中的一些:

"key" : {
"key1" : "value1",
"key2" : "value2"
}

这是因为 toJson() 不支持更复杂的 JSON 吗?我认为这更有可能是我做错了什么。

@编辑

这是我初始化 map 的方式:

put("key", new HashMap<String,String>(){{
put("key1", "value1");
}};

最佳答案

有了这个:

final HashMap<String, String> value = new HashMap<String, String>(){{
put("key1", "value1");
}};

您正在使用 instance initializer 创建新的 AnonymousInnerClass

来自 Gson 文档:

Gson can also deserialize static nested classes. However, Gson can not automatically deserialize the pure inner classes since their no-args constructor also need a reference to the containing Object which is not available at the time of deserialization.

只需将映射更改为不使用实例初始化程序:

final Map<String, String> value = new HashMap<>();
value.put("key", "value");

关于java - HashMap to gson with maps as values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45876600/

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