我正在使用JsonObject
从Map<String, String>
创建Gson
:
val params = HashMap<String, String>()
params["confirmation"] = "send"
JsonParser().parse(Gson().toJson(params)) as JsonObject
当所有条目都是字符串(因此Map<String, String>
)时,它可以正常工作。但是,我发现自己无法使用此方法来创建混合值Json,例如以下示例:
{
"integer": 1,
"string": "text",
"boolean": false
}
是否有一种无需创建模型和POJO即可完成此类结果的方法?我找到了一些解决方法,但我期待看到一个优雅的解决方案,也许是具有通用(甚至通配符)类型的Map。.
答案 0 :(得分:0)
因此,基本上,我通过试错法找到了答案。一切都是为了将参数化类型扩展为Any
(在Java中为Object
)。运作方式如下:
val params = HashMap<String, Any>()
params["integer"] = 123
params["string"] = "text"
params["boolean"] = false
JsonParser().parse(Gson().toJson(params)) as JsonObject
此代码将生成混合类型的JsonObject,如下所示:
{
"integer": 123,
"string": "text",
"boolean": false
}