Java:org.json.JSONObject-创建一个新实例将从大小数中删除尾随的零
例如,此短JSON作为API响应的Java:org.json.JSONObject-创建一个新实例将从大小数中删除尾随的零,java,json,rest-assured,web-api-testing,org.json,Java,Json,Rest Assured,Web Api Testing,Org.json,例如,此短JSON作为API响应的字符串,使用重新发布: { "id": "4d27afb18bfa4eb5917beee9aaddfa76", "hedgeId": 205598, "sellCurrency": "USD", "buyCurrency": "EUR", "buyAmount": 473935.00, "sellAmount": 585538.30, } 每当我做JSONObject foo=newjsonobject(上面的T
字符串,使用重新发布:
{
"id": "4d27afb18bfa4eb5917beee9aaddfa76",
"hedgeId": 205598,
"sellCurrency": "USD",
"buyCurrency": "EUR",
"buyAmount": 473935.00,
"sellAmount": 585538.30,
}
每当我做JSONObject foo=newjsonobject(上面的ThatStringUpper)代码>,创建此实例:
{
"hedgeId": 205598,
"buyAmount": 473935,
"sellAmount": 585538.3,
"id": "4d27afb18bfa4eb5917beee9aaddfa76",
"sellCurrency": "USD",
"buyCurrency": "EUR"
}
请注意,“数量”节点中的尾随零被剥离。这在我看来是一个bug,但有人知道如何防止这种情况发生的解决方法吗
很少注意:
我想使用相同的库(org.json)来解决这个问题
如果可能的话,我想从一个字符串构造实例,就像我目前所做的那样
Maven依赖项:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20170516</version>
</dependency>
org.json
json
20170516
谢谢你的帮助 您将无法使用org.json库执行此操作。它在序列化过程中故意去除尾随的零
从相关方法JSONObject.numberToString()
:
输出:
{
"id": "4d27afb18bfa4eb5917beee9aaddfa76",
"hedgeId": 205598,
"sellCurrency": "USD",
"buyCurrency": "EUR",
"buyAmount": 473935.00,
"sellAmount": 585538.30
}
如果您愿意,它还可以映射到对象。一种方法是使用字符串而不是数字,例如
{
"buyAmount": "473935.00",
"sellAmount":"585538.30",
}
如果您使用的是BigDecimal
方法,请使用toPlainString
方法来避免删除尾随的零您将序列化为JSON数字
类型,该类型始终是浮点型且没有精度。如果要保留格式,需要使用字符串。很遗憾,我无法修改规范。数据将来自已定义的API响应。感谢提供此信息。但愿我早一点选择了格森。现在使用它需要一些工作和时间。将等待其他答案,如果没有其他答案,将接受此答案。您可以分叉库并更新numberToString
。
{
"id": "4d27afb18bfa4eb5917beee9aaddfa76",
"hedgeId": 205598,
"sellCurrency": "USD",
"buyCurrency": "EUR",
"buyAmount": 473935.00,
"sellAmount": 585538.30
}
{
"buyAmount": "473935.00",
"sellAmount":"585538.30",
}