java - 为什么 GSON 在我所有原本不包含任何小数的 JSON 数字之后都加上一个小数点和一个零?

标签 java android json hashmap gson

我从网络服务读取 JSON 并将所有 JSON 对象转换为 HashMap<String, String>使用 GSON。

我测试过,我的 JSONObject 没问题(任何数字中都没有小数点),但是 map 对象中的所有数字都有一个小数点和一个零。

这是我的代码:

try {
    jsonArray = json.getJSONArray("PropertyListings");
    for(int i = 0; i < jsonArray.length(); i++){
        JSONObject c = jsonArray.getJSONObject(i);
        HashMap<String, String> map = new HashMap<String, String>();
        map = (HashMap<String, String>) new Gson().fromJson(jsonArray.getString(i), map.getClass());
        listOfProperties.add(map);
    }

最佳答案

来自维基百科。 JSON 的基本类型是:

Number — a signed decimal number that may contain a fractional part and may use exponential E notation. JSON does not allow non-numbers like NaN, nor does it make any distinction between integer and floating-point. (Even though JavaScript uses a double-precision floating-point format for all its numeric values, other languages implementing JSON may encode numbers differently)

它不区分整数和 float 。所以它认为每个数字都可能有小数部分,所以当您将数字转换为字符串时,它会保留该部分。尝试将其转换为 Integer

关于java - 为什么 GSON 在我所有原本不包含任何小数的 JSON 数字之后都加上一个小数点和一个零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24288183/

相关文章:

jquery - 在大型数据集上使用 Jquery/ajax/jasonresult 时是否有超时?

java - 从 clojure 创建 Java 对象

java - 为什么 JPanel 不显示 ImageIcon?

java - Vaadin 14.1.17 - 获取图表中选择的元素 - Java

java - 不选择如何传递微调器值

android - view.getDrawingCache() 在 Android API 28 中被弃用

c# - 将多个对象发布到 Web API

java - 有没有办法强制 Axis1 生成文档文字 WSDL 和 SOAP?

android - 如何在 Android SDK 4.0 中将自定义故事直接发布到用户的 Facebook 墙上?

jQuery对对象的递归迭代