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

如何在json中为rest发送2个实体

欧阳何平
2023-03-14

我正在尝试执行以下操作:@post@path(“/add”)@consumes(Mediatype.application_json)void addStudentInCourse(DtoCourse课程,DtoStudent学生);但这不起作用:`puthttp://localhost:8080/university/api/v1/study/content-type:application/json

{“course”:{“id”:1},“student”:{“id”:5}}`如何在json中创建2个实体

共有1个答案

吕昀
2023-03-14

您不能以您想要的方式发送两个对象,因为您的请求的整个主体都是一个对象,因此,您应该创建一个“包装对象”,它同时具有所需的两个参数。考虑到这一点,我的建议是按照下面的代码创建一个请求dto来包含您的对象:

public class AddStudentInCourseRequest {

  private DtoCourse course;
  private DtoStudent student;

  // constructor, getters and setters
}

并将服务的签名更改为:

@POST 
@Path("/add") 
@Consumes(MediaType.APPLICATION_JSON) 
void addStudentInCourse(AddStudentInCourseRequest request) {
  DtoCourse course = request.getCourse();
  DtoStudent student = request.getStudent();

  // remaining business logic
} 

这样,您要发送的请求就可以工作了:

{ 
  "course": { "id": 1 }, 
  "student": { "id": 5 } 
}`

ps.:只需仔细检查http方法。在您的请求中,您使用的是PUT,而在您的方法中,您使用的是@POST注释

 类似资料:
  • 资源 ComplexObject类只是一个带有字符串的类。当我点击URL:http://localhost:8080/simple-service-webapp/webapi/myresource/This work时,我得到的是“get it!” 但是当我点击:http://localhost:8080/simple-service-webapp/webapi/myresource/comple

  • 我试图实现同样的事情:如何使用查询参数表示为JSON与Spring RestTemplate?,发送JSON字符串作为URL参数在. 公认的答案提到将JSON对象作为请求参数发送通常不是一个好主意,因为您可能会面临JSON中的花括号问题。这正是当我试图对API进行GET调用时发生的事情。由于这是来自另一个系统的API,我不能要求他们更改格式,必须调用GETendpoint,将JSON作为参数传递。

  • 问题内容: 我在这里尝试做的是获取给定URL的标头,以便确定MIME类型。我希望能够查看是否http://somedomain/foo/将返回例如HTML文档或JPEG图像。因此,我需要弄清楚如何发送HEAD请求,以便无需下载内容就可以读取MIME类型。有人知道这样做的简单方法吗? 问题答案: 使用。 还有一个getheader(name)获取特定的标头。

  • 我无法在改型中以行json格式发送数据。 我将改装版1.9迁移到2。在Retrfit1.9中,我可以使用HashMap发送原始json,但在改型2中,我使用HashMap发送,但无法将数据作为json发送。所以我用pojo来代替。 api生成试图获取非对象属性的日志,因此我无法在json行中传递数据。 我刚刚在错误日志中看到了我的服务器详细信息,我的请求自动转换为GET。我在POST中使用Refo

  • 问题内容: 我是java的新手,我为这个问题苦苦挣扎了2天,最后决定在这里提问。 我正在尝试读取jQuery发送的数据,因此可以在servlet中使用它 jQuery的 Servlet 我非常感谢您可以提供的任何帮助。 问题答案: 除非正确发送,否则将无法在服务器上对其进行解析: 您必须使用JSON字符串来发送JavaScript对象。 然后在服务器上: 您可以手动或使用任何库来解析字符串(我建议

  • 我已在中创建了我的应用程序并配置为云消息传递。当我从控制台发送通知时,设备会收到通知,但如果我尝试通过Rest API(使用PostMan)发送。然后通知不会到达设备,但响应显示为成功。 这是我的邮差请求 URI-https://fcm.googleapis.com/fcm/send 标题:内容类型:应用程序/json授权:密钥=MY_SERVER_KEY 正文:{“数据”:{“标题”:“火力基地