【问题标题】:JSON Schema Validator and Converter in JavaJava 中的 JSON 模式验证器和转换器
【发布时间】:2012-03-23 20:49:25
【问题描述】:

我有两个要求:

  1. 根据架构 (https://datatracker.ietf.org/doc/html/draft-zyp-json-schema-03) 验证 org.json.JSONObject

  2. 将一个org.json.JSONObject 或其字符串表示形式转换为另一个org.json.JSONObject。例如,转换

    { “字段1”:“值1”, “字段 2”:“值 2” }

{ 
   "field3":"value1",
   "field4":"value1"
}

映射将类似于:

field1=field3
field2=field4

【问题讨论】:

    标签: json jsonschema


    【解决方案1】:

    (免责声明:我是这样一个库的作者)

    在 Java 中,有我写的 this library,但它使用 Jackson 作为其核心,而不是 org.json。

    不过,这不是问题,你可以使用JsonLoader来转换JSONObject:

    JsonNode schema = JsonLoader.fromString(object1.toString());
    JsonNode data = JsonLoader.fromString(object2.toString());
    

    然后使用 API。

    【讨论】:

    • 您能否提供一个示例,说明如何使用 json-schema-validator 对照 json 模式文件验证 json 数据。到目前为止,我用JsonTools 尝试过这个,不幸的是没有成功。 stackoverflow.com/q/18143650/1817029
    • 取决于您使用的版本。你看过here(注:开发版)吗?
    • 谢谢,这看起来很简单。我已经下载了开发版本:json-schema-validator-2.1.7.jar 并添加到构建路径(Eclipse IDE),但现在我收到错误:The import com.github.fge.jsonschema.exceptions.ProcessingException cannot be resolvedThe import com.fasterxml cannot be resolved 还有其他库吗?
    • 是的,有。但是你不使用 gradle 或 maven 来做依赖吗?
    • 嗯,围绕 maven 最好的方法是 gradle,真的。但我原以为 Eclipse 能够使用存储库来查找/管理依赖项(我使用的是 IDEA)。如果你可以从 github 获取源码,那么它就像 ./gradlew fatJar 一样简单,并且包含 libs/json-schema-validator-*-farJar.jar 作为依赖项。
    【解决方案2】:

    你可以试试这些:

    1. 您可以尝试使用JSON Tools
    2. 没有得到您的第二个问题,但如果您正在寻找字符串等价物,那么您可以使用 JSONObject.toString()

    【讨论】:

      【解决方案3】:

      对于您的第二个要求,您可以考虑 Google 的GSON

      这里是 tutorial 的食谱风格,可帮助您开始使用 GSON。它向您展示了如何将 JSON 字符串解析为 Java 对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-22
        • 1970-01-01
        • 2019-10-17
        • 2021-05-18
        • 1970-01-01
        • 2021-09-22
        • 2016-08-27
        相关资源
        最近更新 更多