Java:org.json.JSONObject-创建一个新实例将从大小数中删除尾随的零

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

例如,此短JSON作为API响应的
字符串
,使用
重新发布

{
    "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",
    }