Web services 使用RESTful Web服务发送POJO以在服务器上保存

Web services 使用RESTful Web服务发送POJO以在服务器上保存,web-services,rest,spring-mvc,resttemplate,Web Services,Rest,Spring Mvc,Resttemplate,我正在开发一个RESTfulWeb服务,它允许用户在POJO中设置所有参数并将其发送到服务器端web服务,然后web服务将存储这些数据并将生成的Id返回给客户端。但我的POJO具有包含POJO集合的父子关系,所以如何使用RESTfulWeb服务来实现这一点。我还编写了一个代码,使用web服务从服务器获取数据,并且工作正常。但是对于这个问题,请帮助我。 谢谢 我不确定我是否正确理解了你的问题。我想一些示例代码会有所帮助。如果您使用的是restemplate,那么序列化和反序列化将自动完成。Rest

我正在开发一个RESTfulWeb服务,它允许用户在POJO中设置所有参数并将其发送到服务器端web服务,然后web服务将存储这些数据并将生成的Id返回给客户端。但我的POJO具有包含POJO集合的父子关系,所以如何使用RESTfulWeb服务来实现这一点。我还编写了一个代码,使用web服务从服务器获取数据,并且工作正常。但是对于这个问题,请帮助我。
谢谢

我不确定我是否正确理解了你的问题。我想一些示例代码会有所帮助。如果您使用的是
restemplate
,那么序列化和反序列化将自动完成。RestTemplate使用
Jackson
解析JSON,因此您不必担心POJO中的父/子关系

下面是一个例子。互联网上有1000多个例子。我就是这样学的

RestTemplate restclient = new RestTemplate();
Product product = restclient.getForObject(url,Product.class);
System.out.println(product.getCoupons().getName());
作为产品(我完全是自己编造的)


如果我误解了您的问题,请告诉我,我可以相应地更新我的答案。

您尝试了什么?如果您有一个复杂的对象,那么您必须在请求主体中提供它。这可以是XML或JSON;请尝试使用您的框架查看一些POST和PUT的REST示例。@James我想传递一个复杂的对象,如上所述,并获得生成Id的响应,但我不知道如何编写它。您能帮助我吗?关于我的语言,我很抱歉。谢谢你的重播,你的猜测是书面的,但是你能给我一些代码示例,用RestTemplate使用POST或PUT方法传递复杂对象。你尝试过什么?你说复杂是什么意思?你说的复杂是指有许多子类的父类?实际上我的POJO不只是包含字符串或整数,它包含集合、列表、对象等等。它是否适用于这种类型的POJO,以及如何在服务器端编写代码以获得此请求。没关系,RestTemplate会处理它。我担心,在服务器端我帮不了你。如果内容类型是xml,你会怎么做
 public  class Product {
      @JsonProperty("id")
      private String id;
      @JsonProperty("coupons")
      private Coupons coupons;

      @JsonProperty("id")
      public String getId() {
        return id;
      }
      @JsonProperty("id")
      public void setId(String id) {
        this.id = id;
      }
      @JsonProperty("coupons")
      public Coupons getCoupons() {
       return coupons;
      }
      @JsonProperty("coupons")
      public void setCoupons(Coupons coupons) {
       this.coupons = coupons;
     }
}
public class Coupons {
     @JsonProperty("name")
     private String name;
     @JsonProperty("name")
     public String getName() {
        return name;
     }
     @JsonProperty("name")
     public void setName(String name) {
           this.name = name;
     }
}