【问题标题】:Serializing a map with different key types to json将具有不同键类型的映射序列化为 json
【发布时间】:2012-02-26 10:28:56
【问题描述】:

我有一个从字符串到 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 是整数。

如何以优雅高效的方式转换我的地图?

【问题讨论】:

    标签: java json oop map gson


    【解决方案1】:

    您尝试做的不是有效的 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> .但是,它们仍将仅作为字符串序列化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多