我正在尝试将提供的字符串(JSON)转换为Map〈String,Any〉,例如JSON可以是这样的(值可以是任何原语类型或集合,如Map集或数组:
{
"key": "thisIsMyKey",
"value": false
}
所以我用GSON把它转换成了这个小片段:
return jsonMap?.let { Gson().fromJson(jsonMap, object : TypeToken<HashMap<String, Any>>() {}.type) }
我现在遇到的问题是,如果我想用JSONObject传递值,那么下面的示例
{
"key": "thisIsMyKey",
"value": {
"title": "this is title"
}
}
它被转换为一个键和多个“任何”值与字符串,但在这种情况下,我希望该值不仅仅是一个条目〈String,JSONObject),任何提示如何实现这一级太深的转换?
1条答案
按热度按时间crcmnpdw1#
您可以通过将预期类型指定为
Map<String, JsonElement>
来实现此目的。此方法的缺点是基元类型(Number
、String
、Boolean
)的值将被 Package 到JsonPrimitive
中。如果无法接受,您可以手动将其解 Package :