3

使用休息服务,我们正在使用 JSON 传输值。

在某些时候,我们需要决定传入的值是 long 还是 double。尽管

Double d = 17.0;

System.out.println("toString(): " + d.toString());

将导致

toString(): 17.0

将值包装在 JSONObject 中时,零和点被删除:

JSONObject jo = new JSONObject();
jo.put("myDouble", d);
System.out.println(jo.toString());

输出:

{"myDouble":17}

rest-Service 基本上有一个 EAV-Store,所以它不应该通过给定的 ValueNAME 来确定类型。我 testet 2 JSON-Implementations,两者都有相同的行为。

我能以某种方式实现,将十进制值附加到 JSONObject 中,而不必为它创建自己的实现吗?

4

1 回答 1

0

荣誉应该去感知的评论:

使用不同的 JSON 库(JSON Simple、Gson、Jackson)。在序列化浮点数时,所有提到的都保留小数点后一位的精度。

使用 JSON Simple,它按预期工作。

于 2018-10-19T14:52:23.123 回答