如何从 JAXB 带注释的类生成 JSON 模式?

2024-02-19

我有一个实体类,如下所示。

@XmlRootElement
public class ImageSuffix {

    @XmlAttribute
    private boolean canRead;

    @XmlAttribute
    private boolean canWrite;

    @XmlValue;
    private String value;
}

我正在使用以下依赖项来生成 JSON。

<dependency>
  <groupId>com.fasterxml.jackson.jaxrs</groupId>
  <artifactId>jackson-jaxrs-json-provider</artifactId>
  <version>2.1.4</version>
</dependency>

当我尝试使用以下代码时(引用自使用 Jackson 生成 JSON 模式 http://wiki.fasterxml.com/JacksonJsonSchemaGeneration)

@Path("/imageSuffix.jsd")
public class ImageSuffixJsdResource {

    @GET
    @Produces({MediaType.APPLICATION_JSON})
    public String read() throws JsonMappingException {

        final ObjectMapper objectMapper = new ObjectMapper();

        final JsonSchema jsonSchema =
            objectMapper.generateJsonSchema(ImageSuffix.class);

        final String jsonSchemaString = jsonSchema.toString();

        return jsonSchemaString;
    }
}

服务器抱怨以下错误消息

java.lang.IllegalArgumentException: Class com.googlecode.jinahya.test.ImageSuffix would not be serialized as a JSON object and therefore has no schema
        at org.codehaus.jackson.map.ser.StdSerializerProvider.generateJsonSchema(StdSerializerProvider.java:299)
        at org.codehaus.jackson.map.ObjectMapper.generateJsonSchema(ObjectMapper.java:2527)
        at org.codehaus.jackson.map.ObjectMapper.generateJsonSchema(ObjectMapper.java:2513)

我怎样才能解决这个问题?


您是否尝试过配置 ObjectMapper 以包含 jaxb introspector?我们使用 spring mvc3 来实现 REST 服务,并使用相同的模型对象序列化为 xml/json。

AnnotationIntrospector introspector = 
    new Pair(new JaxbAnnotationIntrospector(), new JacksonAnnotationIntrospector());
objectMapper.setAnnotationIntrospector(introspector);
objectMapper.generateJsonSchema(ImageSuffix.class);

EDIT:这是我从杰克逊得到的输出:

{
  "type" : "object",
  "properties" : {
    "canRead" : {
      "type" : "boolean",
      "required" : true
    },
    "canWrite" : {
      "type" : "boolean",
      "required" : true
    },
    "value" : {
      "type" : "string"
    }
  }
}

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 JAXB 带注释的类生成 JSON 模式? 的相关文章

随机推荐

  • Eclipse:JDK 9+ 不支持 clientBuilder.sslSocketFactory

    我在 Eclipseoxygen 4 7 0 java 1 8 上收到此错误 JDK 9 不支持 clientBuilder sslSocketFactory 与 Eclipse maven 相关 尝试更新 Maven Alt f5 模块
  • 如何将文本文件内容保存到Javascript变量?

    我正在尝试读取超过 150 000 行文本的文本文件 我希望能够读取文本文件并将其作为 processFileContent 的参数传递 我尝试了这种方法 但它不起作用 另外 对于如此大的数据 有没有更好的方法呢 function read
  • LDAP查询群组成员

    我正在尝试进行 LDAP 查询 以获取所有组 成员的列表 我不知道我该怎么做 我所有的尝试都没有成功 我的 AD 树 mydomain local Mybusiness Distribution Groups 这是我的组 我尝试过这样的事情
  • VSCode 远程 server.sh 在 wsl docker-desktop 中找不到节点

    I have VSCode v1 46 0 远程 wsl 扩展 v0 44 3 Windows 10 操作系统版本 19041 329 Docker 桌面 v2 3 0 3 我试图在 docker desktop wsl 中打开 VSCod
  • 访问使用 ElementTree 解析的 xml 文件中的嵌套子级

    我是 xml 解析新手 这个xml文件 http ratings food gov uk OpenDataFiles FHRS408en GB xml有以下树 FHRSEstablishment gt Header gt gt Establ
  • 在递归中使用 Prolog 列表

    所以我尝试用递归的方法来寻找两个人之间的路径 这是快速背景 我定义一些事实in X Y 这表明谁是相关的 即 in person1 project1 in person2 project1 等等 现在 如果任何两个人彼此在同一个项目中 或者
  • @ExceptionHandler 不适用于 Spring MVC 3.1 单元测试

    通过在正常 servlet 上下文之外实例化对象 我可以在 Spring MVC 控制器上完成几乎所有单元测试 但我希望能够运行一些测试 以确保我的对象序列化正常工作 正在生成标头等 为了在 servlet 上下文中运行测试 我创建了一个修
  • 如何调用嵌套在 JQuery 插件中的函数?

    我的目标是能够调用 JQuery 插件内的函数 正确的语法是什么 例如 这不起作用 a href Click Me a
  • 如何获取控制器中的请求映射值?

    在控制器中 我有这个代码 不知何故 我想获取请求映射值 搜索 这怎么可能 RequestMapping search public Map searchWithSearchTerm RequestParam name String name
  • OpenXML 2.0 获取错误的单元格值

    我在读取值时遇到了一些问题Excel2010 年工作表 在标准 Excel 2010 工作表上 我有一个具有两位小数的货币格式和值的单元格1270 14 当我在 OpenXML 2 0 C 代码 上读取这个值时 我得到1270 140000
  • 将表单发布到更多 URL

    有没有办法将表单发布到更多网址 我需要它在 JavaScript 中 例如 我有 2 个文档 1 php 和 2 php 我希望表单将数据发布到这两个文件 但转到 1 php 你知道有什么办法吗 您需要一个带有操作 1 php 和 jQue
  • 将上下文菜单添加到 Windows 资源管理器以运行 BAT 文件

    有什么方法可以向 Windows 资源管理器上下文菜单添加一个新条目 该条目可以使用所选文件作为参数来运行 BAT 文件 命令 具体来说 我需要这样做 pscp pw password E File txt email protected
  • 如何使用提供的 url 从 s3 下载文件?

    在我的应用程序中 我将获取 s3 文件的 url 例如 https s3 amazonaws com account update input csv https s3 amazonaws com account update input
  • Buildr 与 Gradle,优缺点? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 JavaScript 中将异步调用与同步调用结合起来

    我开始学习 javascript 并且有一个关于组合同步和异步调用函数的问题 这只是一个理论问题 但我希望它能传达这个想法 假设我们有一个 javascript 程序来决定我需要购买多少香蕉和橙子 console log buy d ban
  • 禁用 nuxt 代码分割。如何将所有内容打包到一个文件中

    我有一个简单的 vue nuxt 项目 我想从 AWS lambda 提供服务 为此 我想将所有内容分组到一个文件中 我看到 Nuxt 正在分割文件 以便仅在给定时间加载重要的内容 但该应用程序是单个页面 供内部使用 加载时间 内存使用情况
  • 在 Linux 的特定位置添加一行并输出到同一个文件?

    如何在 file txt 中添加第三行 line 1 line 2 line 4 sed 可以做sed 3iline 3 file txt但我想输出到同一个文件 我试过sed 3iline 3 file txt gt gt file txt
  • 使用 CSS 替换表格行颜色?

    我正在使用具有替代行颜色的表格 tr d0 td background color CC9999 color black tr d1 td background color 9999CC color black table tr class
  • 更改 Jquery UI Accordion 的动画速度

    我正在使用 Jquery UI Accordion 但我没有在文档中找到有关如何更改动画速度的任何内容 我发现人们建议使用选项 animated bounceslide 但无法找到动画的不同可用选项 我当前的js如下 accordion a
  • 如何从 JAXB 带注释的类生成 JSON 模式?

    我有一个实体类 如下所示 XmlRootElement public class ImageSuffix XmlAttribute private boolean canRead XmlAttribute private boolean c