我想将json数据发送到硬件(使用RESTfulAPI),其中一些数据是双数字,我希望数字总是以双格式出现,我的意思是,即使在浮点之后没有数字,我希望浮点之后至少是一个零。
这是我的代码:
sendDataToServer(String key, Object value) {
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, value);
data = jsonObject.toString();
sendJsonData(data);
}
当我像这样调用这个方法
sendDataToServer("number", 5.0);
它会这样发送数据
{
"number": 5
}
我想要这样的效果:
{
"number": 5.0
}
发布于 2018-08-07 14:03:36
您必须在两端使用相同的数据类型。如果你用双倍
代码应该看起来像
class SomeData {
public Double number;
}
SomeData data = new someData();
data.number = 5.5
使用gson将其转换为json
new Gson().toJson(data)
会给
{
"number":5.5
}
即使是阅读也会返回相同的值。
如果在读取时使用INT处理数据,最终将得到5而不是5.5
发布于 2018-08-07 14:24:55
试试下面的代码:
JSONObject json = new JSONObject();
String value = String.format("%.1f", 5f);
json.put("key", value);
Log.i("TAG", json.toString());
输出:{“key”:“5.0”}
https://stackoverflow.com/questions/-100001986
复制相似问题