【问题标题】:jackson library to accept currency and percent as valid json杰克逊库接受货币和百分比作为有效的 json
【发布时间】:2020-12-15 23:57:07
【问题描述】:
 val jsonObject = new org.json.JSONObject("{\"name\":\"abc\",\"Estd date\":\"23.06.1995\",\"GrowthRate\":50%}")
 println(jsonObject)
 new ObjectMapper().readTree("{\"name\":\"abc\",\"Estd date\":\"23.06.1995\",\"GrowthRate\":50%}")

Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unexpected character ('%' (code 37)): was expecting comma to separate OBJECT entries

怎样才能拥有与 JSONObject 相同的行为?我们有一些限制,因此我们不能使用 JSONObject。有什么帮助吗?

有没有办法使用自定义序列化程序来做到这一点?像 $50 这样的货币符号也应该被解析。

我正在使用 jackson-databind-2.6.7.1.jar

【问题讨论】:

    标签: json scala jackson serialization


    【解决方案1】:

    50%10$ 等表达式必须作为字符串 [1] 传输。

    new ObjectMapper().readTree("{\"name\":\"abc\",\"Estd date\":\"23.06.1995\",\"GrowthRate\":\"50%\"}")
    

    会起作用的。


    [1]

    JSON 值必须是对象、数组、数字或字符串,或其中之一 以下三个字面量名称: false null tr​​ue

    https://www.rfc-editor.org/rfc/rfc7159#page-5

    相关:

    【讨论】:

    • 是的,我不确定 JSONObject 默认如何将其解析为字符串。默认情况下是否有任何配置将这些值默认视为字符串?
    • 我不知道。也许问这是一个新问题?!我想我会用一些正则表达式/字符串替换来预处理非 Json。同时我会要求制作人提供有效的Json。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2017-10-07
    • 2016-10-19
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多