早上好
相对来说,我是java新手,正在尝试完成一个项目,但是我遇到了问题。我的程序使用SQL构建一个URL来调用web服务,该服务将返回以下JSON:
[{
"MmisItemNo": "106552",
"CatalogNo": "UM18840041R",
"ContractOn": "False"
}
]
我需要做的是在末尾去掉“False”或“True”值,根据其结果执行其他逻辑。
我不断得到以下错误:
.WebCall -com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot
deserialize instance of `.LightswitchResponse` out of START_ARRAY token at [Source: (String)"[{"MmisItemNo":"106552","CatalogNo":"UM18840041R","ContractOn":"False"}]"; line: 1, column: 1]
这是我在WebCall中构建URL后的代码。java类:
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
ObjectMapper mapper = new ObjectMapper();
LightswitchResponse lightswitchResponse = mapper.readValue(response.toString(), LightswitchResponse.class);
System.out.println(lightswitchResponse.ContractOn);
在我的第二节课中,代码如下:
public class LightswitchResponse {
String MmisItemNo;
String CatalogNo;
boolean ContractOn;
public String getMmisItemNo() {
return MmisItemNo;
}
public void setMmisItemNo(String mmisItemNo) {
MmisItemNo = mmisItemNo;
}
public String getCatalogNo() {
return CatalogNo;
}
public void setCatalogNo(String catalogNo) {
CatalogNo = catalogNo;
}
public boolean ContractOn() {
return ContractOn;
}
public void setContractOn(boolean contractOn) {
ContractOn = contractOn;
}
}
关于可能出错的任何想法?我觉得这可能与JSON响应上的[]有关,但不是100%确定。
你是对的,这是因为JSON响应上的[]。这意味着返回的 JSON 对象是一个对象数组。
因此,为了让杰克逊正确地映射它,你应该这样做:
LightswitchResponse[] lightswitchResponses =
mapper.readValue(response.toString(), LightswitchResponse[].class);
然后,您可以从中读取第一个元素以获取所需的LightSwitchResponse对象:
LightswitchResponse lightswitchResponse = lightswitchResponses[0];
问题内容: 我希望我的JSON看起来像这样: 到目前为止的代码: 和 我只是缺少如何使用Jackson将Java对象转换为JSON的部分: 我的问题是:我的课程正确吗?我必须调用哪个实例,以及如何实现此JSON输出? 问题答案: 要使用Jackson 转换JSON:
我希望我的JSON如下所示: 迄今为止的代码: 和 我只是错过了如何使用Jackson将Java对象转换为JSON的部分: 我的问题是:我的课正确吗?我必须调用哪个实例,以及如何实现这个JSON输出?
本文向大家介绍如何使用Jackson库将Java对象转换为JSON?,包括了如何使用Jackson库将Java对象转换为JSON?的使用技巧和注意事项,需要的朋友参考一下 JSON或JavaScript Object Notation是一种轻量级的基于文本的开放标准,旨在用于人类可读的数据交换。JSON使用的约定是程序员已知的,包括C,C ++,Java,Python,Perl等。 有几种Java
我尝试使用DTO到JSON(在JSON文件中写入)和JSON到DTO(从JSON文件中读取)作为常用方法(不同pojo写入/读取操作使用的通用方法) 为了作为通用方法使用,我使用返回类型作为对象。 在我的代码下面 提前道谢。
问题内容: 我有JSON,具有不同级别的字段,因此我想转换为具有一个级别的字段的单个JSON,例如: 结果 我正在使用带有批注的Jackson ,我对第一级字段没有问题,但是我不知道如何在JSON内部访问字段,例如和。 问题答案: JsonUnwrapped是要使用的注释,它甚至适用于多层嵌套。例如: 会产生
问题内容: 有人可以提供一个示例或参考,该示例或参考提供一种使用Jackson库将嵌套JAVA对象转换为JSON输出的方法的方法。我没有转换平面JAVA对象的问题。但是,JSON库显示嵌套的对象名称和类型,而不是其子对象。我几乎可以利用此处提供的相同代码http://www.mkyong.com/java/jackson-2-convert- java-object-to-from-json/ 。