【问题标题】:Can i check if a json got a determinated structure?我可以检查一个json是否有一个确定的结构吗?
【发布时间】:2019-08-05 11:18:40
【问题描述】:

我想检查我传递给我的 Spring 项目的 json 是否获得了比它应该拥有的更多的值。

这是我传递的json

{
    "ThisIsMadeUp": "Bananas",
    "summary": "summary",
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in interdum ligula. Maecenas nec pellentesque orci. Sed auctor nulla nequ , sollicitudin imperdiet libero volutpat eu.",
    "raised": "2019-07-01T03:18:46Z",
    "issueType": "INCIDENT",
    "priority": "Medium"
}

使用“ThisIsMadeUp”字段。

问题是,当我传递这个字段时,一切正常,当它必须抛出错误时,它会正常运行,因为其余字段是构建它所必需的。

如果我传递了这个字段,有办法在构建对象之前检查吗?

【问题讨论】:

  • 你为什么不检查空或空条件。
  • 制作允许的字段列表,解析json,遍历字段,查看解析的字段是否包含在允许列表中。
  • 好吧,我列出来看看它是如何工作的,谢谢你,当我尝试时我会说是否有效
  • 尝试编写自定义注解

标签: java json spring-boot structure


【解决方案1】:

您可以编写一些代码或使用可用的库之一来验证 json 对象。你可以查看这个https://validatejs.org/

【讨论】:

    【解决方案2】:

    是的,您可以编写一些代码来验证此对象或使用可用的库之一来验证 json 对象。

    我不喜欢这样做,但你能谷歌一下:“json schema validator java”吗?

    【讨论】:

      【解决方案3】:

      有很多方法可以验证您的架构

      1. 编写自定义代码以使用任何 JSON 库验证架构。
      2. 使用现有的架构验证器

      要从 POJO 类创建模式,您可以使用 jackson-module-jsonSchema

      我使用了json-schema-validator,但是这个库不再维护了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-04
        • 1970-01-01
        • 2011-04-25
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        • 2012-11-30
        • 1970-01-01
        相关资源
        最近更新 更多