如何创建一个简单的json模板来发送重新发布的正文数据?

vohkndzv  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(429)

因此,我尝试构建一个json,将数据发送到重新发布的请求主体,如下所示:

  1. {
  2. "id": 1,
  3. "category": {
  4. "id": 1,
  5. "name": "duch"
  6. },
  7. "name": "benny",
  8. "photoUrls": [
  9. "string"
  10. ],
  11. "tags": [
  12. {
  13. "id": 0,
  14. "name": "string"
  15. }
  16. ],
  17. "status": "available"
  18. }

所以把这个作为字符串复制到请求的主体就很简单了,我已经完成了,我一点也不想这样。
是否有一个框架可以提供这种结构并以某种方式动态地更改数据?我不想这样:(例如)

  1. given().body("{\r\n\"city\": \"Hod Hasharon\",\r\n\"description\": \"Automation Hotel\",\r\n\"name\":\"Nir Great hotel\",\r\n\"rating\":5\r\n}")
  2. .when().post("http://localhost:8090/example/v1/hotels").then().statusCode(201);

我想在这里更灵活一些,引用某种对象(一个可以在某些地方更改数据的模板?)来处理这些东西,有这样的东西吗?

slmsl1lt

slmsl1lt1#

我认为您需要的是使用pojo和jackson将其序列化为json。

  1. public class Payload {
  2. private int id;
  3. private String name;
  4. private List<Tag> tags; //Tag is another class you need to create the same way
  5. //getters, setters
  6. }

然后在请求中使用对象作为有效负载:

  1. Payload payload = new Payload();
  2. payload.setId(123);
  3. payload.setName("John");
  4. given().contentType("application/json").body(payload).when().post("http://example.com");

另外,不要忘记将jackson数据绑定依赖项添加到项目中。
官方文件中有更多关于这方面的内容:https://github.com/rest-assured/rest-assured/wiki/usage#object-Map

展开查看全部

相关问题