当前位置: 首页 > 知识库问答 >
问题:

如何通过RESTful web服务正确生成JSON?

苍宜修
2023-03-14

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

这是我的方法之一:

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

我简单地为我的方法指出注释@Produces("应用程序/json")就足够了吗?那么这个方法可能返回任何类型的对象?或者只返回String?我是否需要对这些对象进行额外的处理或转换?

作为初学者,请帮助我解决这些问题。提前谢谢!

共有3个答案

薛滨海
2023-03-14
@GET
@Path("/friends")
@Produces(MediaType.APPLICATION_JSON)
public String getFriends() {

    // here you can return any bean also it will automatically convert into json 
    return "{'friends': ['Michael', 'Tom', 'Daniel', 'John', 'Nick']}";
}
叶光华
2023-03-14

你可以使用像org这样的包。jsonhttp://www.json.org/java/

因为您需要更频繁地使用JSONObject。

在那里,您可以轻松创建JSONObject并在其中添加一些值:

 JSONObject json = new JSONObject();
 JSONArray array=new JSONArray();
    array.put("1");
    array.put("2");
    json.put("friends", array);

    System.out.println(json.toString(2));


    {"friends": [
      "1",
      "2"
    ]}

编辑这有一个优点,你可以建立你的反应在不同的层和返回他们作为一个对象

翟奕
2023-03-14

可以使用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

 类似资料:
  • 问题内容: 我是第一次编写Web服务。我基于Jersey创建了一个RESTful Web服务。而且我想 产生JSON 。我需要怎么做才能生成正确的Web服务的JSON类型? 这是我的方法之一: 仅指出方法的注释就足够了吗?那么此方法可能返回任何类型的对象?还是只有String?我是否需要对这些对象进行其他处理或转换? 作为初学者,请帮助我解决这些问题。提前致谢! 问题答案: 您可以使用jaxb注释

  • 我试图理解Spring MVC Restful架构。想知道有多少种方法可以将SpringMVC与RESTfulWeb服务集成在一起。我可以看到其中一个是使用Rest模板。 这是在Spring MVC中使用rest Web服务的唯一方法吗? 我们可以单独使用SpringMVC开发web应用程序而不使用任何web服务吗。 如果我说错了,请指正。 谢谢你的帮助。

  • 我正在编写一个通用组件,该组件封装了一个生成器并执行常规操作: 按键筛选 转换值 等等 为了尽可能接近地模拟包装生成器,如果生成器使用引用,我想使用引用。 当我尝试使用 构造的情况下迭代生成器对引用完全不起作用:

  • 我正在编写一个通用组件,该组件封装了一个生成器并执行常规操作: 按键筛选 转换值 等等 为了尽可能接近地模拟包装生成器,如果生成器使用引用,我想使用引用。 当我尝试使用 构造的情况下迭代生成器对引用完全不起作用:

  • 我正在使用Spring4.0为RESTfulWeb服务创建POC。如果我们只传递字符串或任何其他基本数据类型,它就可以正常工作。 这个很好用。但如果我想将字节流或文件对象传递给函数,我如何编写具有这些参数的函数?我如何编写提供传递字节流的客户端? 我尝试了这个代码,但是得到了415个错误。 客户端代码-使用apache HttpClient

  • 由于我们已经从 GCM 升级到 FCM,所以我们遇到了一个问题,因为该应用程序突然需要自定义 google-services.json,而我似乎没有找到能够让我添加新应用程序并生成新文件的 API 或 cli 工具. 有人找到自动化的方法了吗?