["New York"] "200" -> ["Geneva", "Tel Aviv"] "300" -> ["Rome", -6ren">
gpt4 book ai didi

java - 将具有不同键类型的映射序列化为 json

转载 作者:行者123 更新时间:2023-11-30 04:53:01 27 4
gpt4 key购买 nike

我有一个从字符串到 Java 字符串列表的映射:

"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 是整数。

如何以优雅且高效的方式转换我的 map ?

最佳答案

您尝试执行的操作不是有效的 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>如果您想允许自己输入字符串和整数值。但是,它们仍然只会被序列化为字符串。

关于java - 将具有不同键类型的映射序列化为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452366/

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