休息。球衣。如何以编程方式选择返回类型:JSON 或 XML?

2024-04-26

我有两个问题:

1.我可以创建吗one类,使用 JAXB 注释对其进行注释(用于 XML 支持)并在中声明web.xml

<init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>

JSON(杰克逊库)支持?或者我需要分别为 JSON 和 XML 创建两个类?

或者可能存在一些更优雅的方式来使 REST 服务同时返回 JSON 和 XML?

2.如何以编程方式选择返回的类型(JSON 或 XML)?

Thanks.


Note:我是EclipseLink JAXB (MOXy) http://www.eclipse.org/eclipselink/moxy.php领导者和成员JAXB (JSR-222) http://jcp.org/en/jsr/detail?id=222专家组。


我可以创建一个类,使用 JAXB 注释(用于 XML 支持)对其进行注释,并在 web.xml 中声明 JSON(杰克逊库)支持吗?

您始终可以使用Application类来指定MessageBodyReader/MessageBodyWriter用于 JSON 绑定。我相信 Jackson 在其 jar 中提供了一个实现。下面是一个示例Application将 MOXy 指定为 JSON 提供程序的类:

package org.example;

import java.util.*;
import javax.ws.rs.core.Application;
import org.eclipse.persistence.jaxb.rs.MOXyJsonProvider;

public class CustomerApplication  extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        HashSet<Class<?>> set = new HashSet<Class<?>>(2);
        set.add(MOXyJsonProvider.class);
        set.add(CustomerService.class);
        return set;
    }

}

或者我需要分别为 JSON 和 XML 创建两个类?

EclipseLink JAXB (MOXy) 提供本机 XML 绑定,旨在使您能够使用JSON 和 XML 具有相同的对象模型 http://blog.bdoughan.com/2011/08/binding-to-json-xml-geocode-example.html。您可以使用以下命令将其集成到您的 JAX-RS 应用程序中:MOXyJsonProvider class:

  • http://blog.bdoughan.com/2012/05/moxy-as-your-jax-rs-json-provider.html http://blog.bdoughan.com/2012/05/moxy-as-your-jax-rs-json-provider.html

如何以编程方式选择返回的类型(JSON 或 XML)?

服务器端

您可以使用以下命令指定您的服务同时提供 XML 和 JSON 消息@Produces注解。

@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("{id}")
public Customer read(@PathParam("id") long id) {
    return entityManager.find(Customer.class, id);
}

了解更多信息

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

休息。球衣。如何以编程方式选择返回类型:JSON 或 XML? 的相关文章

随机推荐

  • 将 SQLite 与 Blazor WASM 结合使用有什么好处?

    我正在看这个Steve Sanderson 的视频演示了如何将 SQLite 与 Blazor Web Assembly 结合使用 https www youtube com watch v kesUNeBZ1Os我正在考虑在我的一个项目中
  • Javascript作用域变量可以切换大小写吗?

    在 C 中 您可以将变量的范围限定为 switch case 例如this https stackoverflow com a 2101514 773263 使用 javascript 我使用以下命令获得意外的令牌 const i 1 sw
  • Ruby 使用 JSON 序列化结构

    我正在尝试将一个简单的结构序列化为 JSON 它工作正常 但我无法让它从 JSON 创建该结构的实例 我正在尝试这样做 require rubygems require json Person Struct new name age jso
  • python print() 函数实际上是做什么的?

    我正在看这个question https stackoverflow com questions 1979171 how can i escape xff xfe to a readable string并开始想知道什么是print实际上确
  • java中.this和.class的含义

    假设我们有一个类名称 Home 有什么区别主页 this and 家庭班 它们指的是什么 主页 this Home this指的是当前实例Home class 该表达式的正式术语似乎是合格了这个 http java sun com docs
  • 如果ViewData有ViewBag,为什么TempData没有TempBag?

    为什么 TempData 没有像 ViewData 那样的动态字典对象 之所以没有 是因为没有人费心去实施它 但这是很容易做到的 例如 作为扩展方法 不幸的是 NET 尚不支持扩展属性 因此您无法完全获得您可能希望的语法 public cl
  • 重新格式化双向条形图以匹配示例

    我生成了这个条形图 使用此代码 s level margins fluid margins vp Volume 0 0 1L 0 718 0 690 2L 0 501 0 808 5L 0 181 0 920 MAP 0 0 64 0 43
  • C 中每个块复制一个文件块

    我试图将文件分成 x 个大小为 y 以字节为单位 的块 以便我可以单独复制每个块 我怎样才能做到这一点 尝试使用fread http www manpagez com man 3 fread char buffer ysize fread
  • 使用数据表中的“selectAll”按钮搜索后选择所有可见行

    我已经初始化了一个具有 id 的数据表example像这样 var table example DataTable aaSorting 4 asc select true dom Bfrtip buttons excelHtml5 exte
  • 当更新可用时,手动安装的 apk(不是从 Play 商店)会收到通知吗?

    我想在平板电脑上安装 apk 知道怎么做 我的平板电脑会收到来自 Play 商店的通知吗 该更新已在 Play 商店中准备就绪 我应该安装它吗 仅当满足以下两个条件时 您才会收到更新 在 Google Play 已安装的应用程序 选项卡中看
  • Flash 影片的 Div Z-Index 问题

    我有两个简单的 HTML div 一个包含 flash 电影 另一个 div 包含简单文本 现在我的问题是我必须将文本 div 放到 flash 电影 div 上 我正在做的是将两个 div 的位置设置为 CSS 中的 Absolute 并
  • 如何为 SonarQube 扫描配置 Jenkins 管道

    我正在尝试为我的项目配置詹金斯管道 但这里缺少一些东西 如果有人可以指出我做错了什么 下面是管道脚本 node stage SonarQube analysis requires SonarQube Scanner 2 8 def scan
  • 协议缓冲区和 UTF-8

    编码方案 多操作系统和 Endian nes 的历史导致了对所有形式的字符串数据 即所有字母表 进行编码方面的混乱 因此 协议缓冲区仅处理其字符串类型中的 ASCII 或 UTF 8 并且我看不到任何接受 C wstring 的多态重载 那
  • 出现错误:User 类型的对象在 django python 中不可 JSON 序列化

    我是 django python 的新手 当我尝试从 3 个表获取数据时 出现错误Object of type User is not JSON serializable 任何人都可以帮我解释为什么我会收到此错误吗 在这里我添加了我的vie
  • 关于指针的c/c++问题(双指针)

    自从我学习 c 和 c 课程以来已经有一段时间了 我对 c 指针很好奇 我将在我的示例中使用 new 关键字 即使我知道 malloc 是 C 方式 我总是记得我的老师总是强迫我们使用指针 她永远不会接受数组的作业 她向我们证明 当您使用指
  • 使用页内 JSON 初始化 AngularJS $resource

    我正在使用 AngularJS 的 resource 来获取和更新对象 为了节省页面加载时的往返 我将 JSON 对象放在页面上的变量中 如何使用此数据初始化 resource 而不是调用 get 您可以使用new创建使用以下命令创建的资源
  • 在 asp.net mvc url 中格式化查询字符串的最佳方法?

    我注意到 如果您通过 asp net mvc 发送查询字符串路由值 您最终会将所有空格编码为 20 因为我希望将空格转换为 号 所以覆盖此格式的最佳方法是什么 我正在考虑也许使用自定义 Route 对象或派生自 IRouteHandler
  • 设计具有多个 id 的 RESTful 服务

    我正在设计一个 RESTful 服务 就是列出一组数据 主要问题是该集合没有合理的单一标识符 在系统的知识范围内也不能轻易地计算出特定的集合 因此 似乎不可能有 GET items identifier 服务 我确实有所请求的每个元素的 i
  • 融合表查询

    我有一个非常大的融合表 现在 我想根据用户需求进行查询 我的用户界面应该有一个下拉框来选择列的名称 另一个下拉框用于选择查询条件 gt user1225902 您需要在页面加载期间调用onLoad函数 我有同样的问题
  • 休息。球衣。如何以编程方式选择返回类型:JSON 或 XML?

    我有两个问题 1 我可以创建吗one类 使用 JAXB 注释对其进行注释 用于 XML 支持 并在中声明web xml