2012-02-26 25 views
1

我從字符串的映射在Java中列出字符串:序列化不同的密鑰類型映射到JSON

"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是整數

我如何轉換我的地圖在一個優雅和高效的方式?

回答

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>傳遞,如果你想要讓自己放在字符串和整數值。但是,它們仍然只能作爲字符串序列化。

相關問題