rest-assured支持映射Java对象到Json和XML以及从Json和XML中映射到Java对象。Json映射需要在classpath 中有Jackson、Jackson 2或者是Gson,XML映射需要在classpath 中有JAXB。
1.JsonPath映射
例如:让我们来看一下我们想提取第一个winner到JavaBean对象中:
Json数据准备:
1 {"lotto":{ 2 "lottoId":5, 3 "winning-numbers":[2,45,34,23,7,5,3], 4 "winners":[{ 5 "winnerId":23, 6 "numbers":[2,45,34,23,3,5] 7 },{ 8 "winnerId":54, 9 "numbers":[52,3,12,11,18,22] 10 }] 11 } 12 }
JavaBean对象:
1 public class Winner { 2 3 private int winnerId; 4 private List<integer> numbers; 5 6 public int getWinnerId() { 7 return winnerId; 8 } 9 10 public void setWinnerId(int winnerId) { 11 this.winnerId = winnerId; 12 } 13 14 public List<integer> getNumbers() { 15 return numbers; 16 } 17 18 public void setNumbers(List<integer> numbers) { 19 this.numbers = numbers; 20 } 21 }
我们可以提取一个winner作为JavaBean:
1 Winner winner = from(LOTTO).getObject("lotto.winners[0]", Winner.class);
配置:
你可以通过配置自定义的对象映射、配置预定义的对象映射(已经存在的)、字符集等非常简单的配置JsonPath。你可以通过以下方式来配置JsonPath:
1 JsonPath jsonPath = new JsonPath(new File("/tmp/document.json")). 2 using(new JsonPathConfig("ISO-8859-1")); 3 ..
当解析 /tmp/document.json文件的时候,
就会通知JsonPath以content type=ISO-8859-1的字符集来展示数据
2.xmlPath对象映射:
通过使用xmlPath的JAXB,你可以很容易映射xml文件或者是不分xml文件到一个Java对象。
xml文件数据准备:
1 <greetings> 2 <greeting> 3 <firstName>John</firstName> 4 <lastName>Doe</lastName> 5 </greeting> 6 <greeting> 7 <firstName>Jane</firstName> 8 <lastName>Doe</lastName> 9 </greeting> 10 <greeting> 11 <firstName>Some</firstName> 12 <lastName>One</lastName> 13 </greeting> 14 </greetings>
JavaBean对象准备:
1 @XmlRootElement 2 public class Greeting { 3 private String firstName; 4 private String lastName; 5 6 public String getFirstName() { 7 return firstName; 8 } 9 10 public void setFirstName(String firstName) { 11 this.firstName = firstName; 12 } 13 14 public String getLastName() { 15 return lastName; 16 } 17 18 public void setLastName(String lastName) { 19 this.lastName = lastName; 20 } 21 }
映射xml文档中的第一个greeting到Greeting实例中:
1 Greeting greeting = from(greetingsXml). 2 getObject("greetings.greeting[0]", Greeting.class);
配置:
你可以通过配置自定义的对象映射、配置预定义的对象映射(已经存在的)、字符集等非常简单的配置xmlPath。你可以通过以下方式来配置xmlPath:
1 XmlPath xmlPath = new XmlPath(new File("/tmp/document.xml")). 2 using(new XmlPathConfig("ISO-8859-1")); 3 ..