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)
来自维基百科。JSON的基本类型有:
\n\n\n\n\nNumber \xe2\x80\x94 一个带符号的十进制数,可以包含小数部分\n 并且可以使用指数 E 表示法。JSON 不允许像 NaN 这样的非数字,也不区分整数和浮点数。(尽管 JavaScript 对所有数值使用双精度浮点格式,但实现 JSON 的其他语言可能会以不同方式对数字进行编码)
\n
它不区分整数和浮点数。因此,它认为每个数字都可能有小数部分,因此当您将数字转换为字符串时,它会保留该部分。尝试将其转换为 an Integer。