我有一个HashMap<String, String>,其中值字符串可以是long或double.例如,123.000可被存储为123(存储为长),和123.45如123.45(双).
取这两个hashmap值:
("一","123"); ("两个","123.45")
当我将上面的地图转换为JSON字符串时,JSON值不应该有双引号,比如
预期:{"one":123,"two":123.45}
实际:{"one":"123","two":"123.45"}
这是我的代码如下:
String jsonString = new Gson().toJson(map)
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用GSON的解决方案,但也欢迎使用其他库或库.
对于Gson,您将获得以下转换:
Map<String, Double> -> {"one": 123, "two":123.45}
Map<String, Number> -> {"one": 123, "two":123.45}
Map<String, String> -> {"one": "123", "two": "123.45"}
Run Code Online (Sandbox Code Playgroud)
基本上,没有办法让Gson自动将你的字符串转换为数值.如果您希望它们显示为数字(即没有引号),则需要在地图中存储相应的数据类型,Double或者Number.
此外,Json只有有限数量的基本类型,它存储字符串或数字.一个数值不区分Integer,Long,Double,等.所以我不知道为什么你想区分它们.一旦它被存储为Json,它们都被认为是相同的数字类型.
| 归档时间: |
|
| 查看次数: |
17057 次 |
| 最近记录: |