码迷,mamicode.com
首页 > 其他好文 > 详细

rest-assured的对象映射(序列化和反序列化)

时间:2018-01-12 13:35:30      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:classpath   when   tab   绑定   java   string   pat   cat   form   

rest-assured支持映射Java对象到Json和XML以及从Json和XML中映射到Java对象。Json映射需要在classpath 中有Jackson、Jackson 2或者是Gson,XML映射需要在classpath 中有JAXB。

一、序列化

序列化:序列化Java对象到Json或Xml

假设我们有这样一个Java Object:

 1 public class Message {
 2     private String message;
 3 
 4     public String getMessage() {
 5         return message;
 6     }
 7 
 8     public void setMessage(String message) {
 9         this.message = message;
10     }
11 }

我们想序列化这个对象为Json,并且将Json传递给request请求,这里有几种方法可以做到,比如说:

1.基于Content-Type的序列化

1 Message message = new Message();
2 message.setMessage("My messagee");
3 given().
4        contentType("application/json").
5        body(message).
6 when().
7       post("/message");

在这个例子中,因为请求的content-type被设置为“application/json”,所以rest-assured将序列化这个message对象为Json。rest-assured首先会尝试从classpath中寻找Jackson,如果Jackson没有找到的话,则会使用Gson。如果你将content-type被设置为“application/xml”,rest-assured将使用JAXB,序列化这个message对象为XML。如果content-type没有定义,那么rest-assured将会按照下列顺序序列化对象:

  1.使用Jackson 2将对象序列化为Json(Faster Jackson (databind),数据绑定的速度比Jackson快)

  2.使用Jackson将对象序列化为Json(databind)

  3.使用Gson将对象序列化为Json

  4.使用JAXB将对象序列化为XML

 

同时rest-assured也关心content-type的字符集,比如:

1 Message message = new Message();
2 message.setMessage("My messagee");
3 given().
4        contentType("application/json; charset=UTF-16").
5        body(message).
6 when().
7       post("/message");

你也可以将message对象序列化为表单参数:

1 Message message = new Message();
2 message.setMessage("My messagee");
3 given().
4        contentType("application/json; charset=UTF-16").
5        formParam("param1", message).
6 when().
7       post("/message");

这个message对象将会序列化为字符集为UTF-16的Json(使用Jackson 或者 Gson ,如果存在的话)

rest-assured的对象映射(序列化和反序列化)

标签:classpath   when   tab   绑定   java   string   pat   cat   form   

原文地址:https://www.cnblogs.com/lwjnicole/p/8274853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!