java - RESTful Web 服务如何正确生成 JSON?

标签 java json web-services rest jersey

我是第一次编写 Web 服务。我创建了一个基于 Jersey 的 RESTful Web 服务.我想生成 JSON。我需要做什么来生成我的 Web 服务的正确 JSON 类型?

这是我的一种方法:

@GET
@Path("/friends")
@Produces("application/json")
public String getFriends() {
    return "{'friends': ['Michael', 'Tom', 'Daniel', 'John', 'Nick']}";
}

我只需为我的方法指出注释 @Produces("application/json") 就足够了吗?那么这个方法可能返回任何类型的对象呢?还是只有字符串?我需要对这些对象进行额外处理或转换吗?

请帮助我作为初学者处理这些问题。提前致谢!

最佳答案

您可以使用 jaxb 注释来注释您的 bean。

  @XmlRootElement
  public class MyJaxbBean {
    public String name;
    public int age;

    public MyJaxbBean() {} // JAXB needs this

    public MyJaxbBean(String name, int age) {
      this.name = name;
      this.age = age;
    }
  }

然后您的方法将如下所示:

   @GET @Produces("application/json")
   public MyJaxbBean getMyBean() {
      return new MyJaxbBean("Agamemnon", 32);
   }

最新的文档中有一个章节处理这个问题:

https://jersey.java.net/documentation/latest/user-guide.html#json

关于java - RESTful Web 服务如何正确生成 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594945/

相关文章:

java - 如何仅在其中一个类完成测试后才以类级并行性运行测试

c# - 时区看似错误的 JSON ISO 日期

java - 如何使用 gson 以纳秒精度反序列化 JSON 日期时间

java - 通过查询字符串的 REST api

java - JLabel 与 J 中的文本不对齐

java - 如何在Apache Pulsar中集群切换而没有重复数据

java - 对象中一个变量的 Gson 自定义解串器

c# - Acumatica Web 服务 API 登录

web-services - api 检索附近城市的兴趣点

java扩展最终变量