我有一个从字符串到字符串列表的映射:
"100" -> ["New York"]
"200" -> ["Geneva", "Tel Aviv"]
"300" -> ["Rome", "Paris", "Atlanta"]
"400a" -> ["Los Angeles"]
我想使用gson将其转换为JSON。 99%的键都是整数,但是可能会出现拼写错误(如400a
。)我想要的输出是:
{
100 : ["New York"],
200 : ["Geneva", "Tel Aviv"],
300 : ["Rome", "Paris", "Atlanta"],
"400a" : ["Los Angeles"]
}
请注意,"400a"
是一个字符串,100, 200, 300
是整数。
如何以优雅高效的方式转换我的地图?
答案 0 :(得分:2)
你要做的不是有效的json。请参阅规范:http://www.json.org/。属性名称应始终为字符串,不允许使用数字。如果你想获得以下json:
{
"100" : ["New York"],
"200" : ["Geneva", "Tel Aviv"],
"300" : ["Rome", "Paris", "Atlanta"],
"400a" : ["Los Angeles"]
}
当然这很容易:您使用Map<String, String>
作为输入(我相信您已经这样做了),或者您可以传入Map<object, String>
如果您想允许自己输入两者字符串和整数值。但是,它们仍然只能作为字符串序列化。