zoukankan      html  css  js  c++  java
  • 基于JsonPath和XmlPath的对象映射(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 
     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 ..
  • 相关阅读:
    Unity中 mesh生成斜坡
    设计模式
    Go语言高级编程
    Go语言高级编程
    agentzh 的 Nginx 教程(版本 2020.03.19)
    ubuntu18安装mysql5.7并配置远程连接
    创建图库
    交点修改
    显示中文
    浅谈前端水印
  • 原文地址:https://www.cnblogs.com/lwjnicole/p/8270120.html
Copyright © 2011-2022 走看看