我在使用getObject将JSON响应转换为对象时遇到问题。JSON响应如下所示:
{ "data": {"id":2," name":"fuchsia rose "," year":2001," color":"#C74375 "," pantone_value":"17-2031"} }
我正在使用restAssured 2.9.0,并尝试这样做:
public class User {
String name;
String color;
String pantone_value;
int year;
int id;
}
@Test
public void testUserSerialisation() {
User user = given()
.when()
.get("https://reqres.in/api/unknown/2")
.then()
.extract()
.response()
.getBody()
.jsonPath()
.getObject("data", User.class);
}
我收到以下错误:
java.lang.ClassCastException: [B cannot be cast to [C
我能够使用用户对象映射JSON响应。
用户.java
/**
*
*/
package com.apiautomation.framework.titan.models;
/**
* @author vamsir
*
*/
public class User {
public String name;
public String color;
public String pantone_value;
public int year;
public int id;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the color
*/
public String getColor() {
return color;
}
/**
* @param color the color to set
*/
public void setColor(String color) {
this.color = color;
}
/**
* @return the pantone_value
*/
public String getPantone_value() {
return pantone_value;
}
/**
* @param pantone_value the pantone_value to set
*/
public void setPantone_value(String pantone_value) {
this.pantone_value = pantone_value;
}
/**
* @return the year
*/
public int getYear() {
return year;
}
/**
* @param year the year to set
*/
public void setYear(int year) {
this.year = year;
}
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
}
ResReqClassMapping.java
/**
*
*/
package com.apiautomation.framework.titan.testsuites.samples;
import org.testng.annotations.Test;
import com.apiautomation.framework.titan.models.User;
import io.restassured.RestAssured;
/**
* @author vamsir
*
*/
public class ResReqClassMapping {
@Test
public void testUserSerialisation() {
User user = RestAssured.given()
.when()
.get("https://reqres.in/api/unknown/2")
.then()
.extract()
.response()
.getBody()
.jsonPath()
.getObject("data", User.class);
System.out.print(user.getColor());
}
}
响应
[RemoteTestNG] detected TestNG version 6.14.3
#C74375
PASSED: testUserSerialisation
===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
问题内容: 我有MainActivity类,该类具有实例化ApplicationBar的方法,所有其他Activity都从此继承,因此他们可以使用此方法。 但是我也有一个MapHolder类,它必须从xml中扩展,因为它使用来显示地图。问题是如果我从不显示ApplicationBar选项卡扩展它,并且从MainActivity扩展它而不显示地图,则出现此错误: 问题答案: 您正在尝试将a强制转换为
问题内容: 我遇到以下错误: 用下面的代码 我为什么不能这样做? 问题答案: 问题来自杰克逊。如果没有足够的信息反序列化到哪个类,则使用。 既然你不通知你的元素类型的杰克逊,它不知道你要反序列化到的秒。因此,它恢复为默认值。 相反,您可能可以使用,然后以比保证价格允许的方式丰富的方式进行处理。像这样:
问题内容: 码: CrbtSubMasterDemo 与数据库一起映射。当我尝试运行它时,它显示以下异常: 问题是query.list()返回pojo类的对象列表。那为什么是这个异常。我是Hibernate的新手,很抱歉这是一个愚蠢的问题。 问题答案: 先生,许多用户都面临这种需求。Hibernate具有ResultTransformer来在Object中转换hql / sql。 它将您查询转换为
问题内容: 我最近升级了一个应用程序,使其可以使用JAVA 7和JBoss 7.1.1运行。该应用程序最初是在JAVA 5和Jboss 4.2.2上开发的。该应用程序使用hibernate3进行持久化。 在新平台上,尝试插入具有上述错误的带有CLOB字段的表时,应用程序失败。我正在使用ojdbc14.jar(后端数据库Oracle 10.2.0.3) 这些是我在jboss 7.1.1配置中验证的: