【发布时间】:2015-07-24 22:22:43
【问题描述】:
我有一个HashMap<String, String>,其中的值字符串可以是 long 或 double。例如,123.000 可以存储为 123(存储为 long),123.45 可以存储为 123.45(双精度)。
取这两个hashmap值:
("一个", "123"); ("二", "123.45")
当我将上面的映射转换成 JSON 字符串时,JSON 值不应该有双引号,比如
预期:{“一”:123,“二”:123.45 }
实际:{“一”:“123”,“二”:“123.45”}
下面是我的代码:
String jsonString = new Gson().toJson(map)
我更喜欢使用 GSON 的解决方案,但也欢迎使用其他库。
【问题讨论】:
-
其实是的they should
-
将您当前的地图转换为
Map<String,Double>或Map<String, Number>并存储适当的值。 -
如果您不喜欢这个问题,为什么要投反对票?问上面的问题没有错。
-
@SotiriosDelimanolis 使用 Map
或 Map 将值转换为 { "one": 123.0, "two": 123.45 } 其中有额外的零我不想在最终的 json 中 -
使用
Map<String, Number>对我来说效果很好。我使用map.put("one", 125);,它会打印{"one":125}。