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
 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 ..

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

时间: 2024-10-08 17:59:03

rest-assured的对象映射(Object Mapping)的相关文章

一:ORM关系对象映射(Object Relational Mapping,简称ORM)

狼来的日子里! 奋发博取 10)django-ORM(创建,字段类型,字段参数) 一:ORM关系对象映射(Object Relational Mapping,简称ORM) ORM分两种: DB first 先在数据库中创建数据库表等 Code first 先创建类,然后根据类创建数据表等.django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 二:Django ORM创建 1)创建类 创建的类必须继承models.Model,在数据库中自动创建表名为:app

.NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践

心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper,花了10分钟简单了解了一下. 看评论也是挺有价值,同时也看到许多新手同学问道在实际项目中使用的情况. 下面就原作者的代码的基础上略作调整,阐述一下在实际项目场景中的使用: 第一步:了解类库方法:TinyMapper 主要有两个函数: TinyMapper.Bind&

数据对象映射模式(转)

php中的设计模式中有很多的各种模式了,在这里我们来为各位介绍一个不常用的数据映射模式吧,希望文章能够帮助到各位. 数据映射模式使您能更好的组织你的应用程序与数据库进行交互. 数据映射模式将对象的属性与存储它们的表字段间的结合密度降低.数据映射模式的本质就是一个类,它映射或是翻译类的属性或是方法到数据库的相应字段,反之亦然. 数据映射的作用(工作)就在于能对双方所呈现出的信息的理解,并能对信息的存取进行控制,如根据存储在数据表中的信息 重建新的域对象,或是用域对象的信息来更新或删除数据表中的相关

PHP 设计模式 笔记与总结(9)数据对象映射模式

[数据对象映射模式] 是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作.例如在代码中 new 一个对象,使用数据对象映射模式就可以将对象的一些操作比如设置一些属性,就会自动保存到数据库,跟数据库中表的一条记录对应起来. [代码实现] 在代码中实现数据对象映射模式,我们将实现一个 ORM(对象关系映射 Object Relational Mapping) 类,将复杂的 SQL 语句映射成对象属性的操作.同时结合[工厂模式]和[注册模式]使用. [例1] 数据库 test ,us

对象映射工具AutoMapper介绍

AutoMapper是用来解决对象之间映射转换的类库.对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间. 一. AutoMapper解决了什么问题? 要问AutoMapper解决了什么问题? 难道不是对象映射转换的问题吗? 当然是,不过我们可以问深入一些,为什么项目中会出现大量的对象映射转换?(以下对于非MVC项目也适用) 在现代的软件开发中,项目的层级更加的细分,而不同层级之间对于对象的需求是有区别的,这就需要在不同层级间传递

数据对象映射模式

定义:将对象和数据存储映射起来,对一个对象的操作会映射为数据存储的操作 综合应用实例:在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作,结合使用数据对象映射模式,工程模式,注册模式 $page = new Page();$page->index(); class Page{ function index() { $user = \IMooc\Factory::getUser(1); $user->name= 'fango0'; $this->t

c#注册表对象映射

用于快捷保存与读取注册表,为对应的对象 示例 [RegistryRoot(Name = "superAcxxxxx")] public class Abc : IRegistry { public string Name { get; set; } public int Age { get; set; } } 保存 Abc a = new Abc { Name = "mokeyish", Age = 100 }; RegistryKey register = Reg

关于iOS上的对象映射公用方法-备

具体的使用方法,请见下面说明,或者见工程里的单元测试代码.或者,参考原始文档: https://github.com/mystcolor/JTObjectMapping 使用方法 ======== 绝大多数情况下,需要用到的就是一个方法: [NSObject objectFromJSONObject:stateObject mapping:nil]; 其中,把NSObject换成我们想映射成的类的名字. 稍微复杂一点,假设类的属性和JSON里的key名字不是一一对应的,那么就要写一个映射关系表作

关系对象映射

ORM(object relationalMapping) 对象是一个内存结构,与关系数据型数据库中的记录从逻辑上说存在映射关系,但是从存储关系上说面向对象与关系型数据库存在互不匹配现象,对象关系映射是为了解决这种不匹配现象的技术,它通过描述对象和数据库之间映射关系的元素,将java程序中的对象自动持久化到关系数据库中,反过来讲数据库中的记录自动的读取到内存结构对象中. 对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据..内存中的对象之间存在关联和继承