rest-assured的对象映射(Object Mapping)

五陵年少金市东,银鞍白马渡春风。这篇文章主要讲述rest-assured的对象映射(Object Mapping)相关的知识,希望能为你提供帮助。
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 3private int winnerId; 4private List< integer> numbers; 5 6public int getWinnerId() { 7return winnerId; 8} 9 10public void setWinnerId(int winnerId) { 11this.winnerId = winnerId; 12} 13 14public List< integer> getNumbers() { 15return numbers; 16} 17 18public void setNumbers(List< integer> numbers) { 19this.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")). 2using(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 { 3private String firstName; 4private String lastName; 5 6public String getFirstName() { 7return firstName; 8} 9 10public void setFirstName(String firstName) { 11this.firstName = firstName; 12} 13 14public String getLastName() { 15return lastName; 16} 17 18public void setLastName(String lastName) { 19this.lastName = lastName; 20} 21 }

映射xml文档中的第一个greeting到Greeting实例中:
1 Greeting greeting = from(greetingsXml). 2getObject("greetings.greeting[0]", Greeting.class);

配置:
你可以通过配置自定义的对象映射、配置预定义的对象映射(已经存在的)、字符集等非常简单的配置xmlPath。你可以通过以下方式来配置xmlPath:
1 XmlPath xmlPath = new XmlPath(new File("/tmp/document.xml")). 2using(new XmlPathConfig("ISO-8859-1")); 3 ..

【rest-assured的对象映射(Object Mapping)】 

    推荐阅读