为什么 GSON 在我原来不包含任何小数的 JSON 数字后面添加了小数点和零?

Tin*_*ina 5 java android json hashmap gson

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

我测试过,我的 JSONObject 没问题(任何数字中都没有小数点),但地图对象的项目中所有数字都有一个小数点,后面有一个零。

这是我的代码:

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);
    }
Run Code Online (Sandbox Code Playgroud)

Spe*_*eed 1

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

\n\n
\n

Number \xe2\x80\x94 一个带符号的十进制数,可以包含小数部分\n 并且可以使用指数 E 表示法。JSON 不允许像 NaN 这样的非数字,也不区分整数和浮点数。(尽管 JavaScript 对所有数值使用双精度浮点格式,但实现 JSON 的其他语言可能会以不同方式对数字进行编码)

\n
\n\n

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

\n