- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定以下 JSON 文件:
[
{"name":"test_12345_54321",
"acceptanceCriteria":
[
{
"given":"I am a developer",
"and":"I have some test case to write",
"when":"I run my test",
"then":"I get a report generated about its details."
}
]
},
{"name":"test_2",
"acceptanceCriteria":
[
{
"given":"I am a developer test 2",
"and":"I have some test case to write test 2",
"when":"I run my test test 2",
"then":"I get a report generated about its details.2"
}
]
}
]
我正在尝试使用 Jackson Object Mapper 访问 JSON 文件中的值。如下:
File jsonFile = new File("results/acceptanceCriteria.json");
ObjectMapper mapper = new ObjectMapper();
TestAcceptanceCriteria acceptanceCriteria = null;
acceptanceCriteria = mapper.readValue(jsonFile, TestAcceptanceCriteria.class);
System.out.println(acceptanceCriteria.getAcceptanceCriteria());
每次我尝试访问任何变量时,我都会收到以下错误:
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of file.readers.TestAcceptanceCriteria out of START_ARRAY token at [Source: results\acceptanceCriteria.json; line: 1, column: 1] at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:270) at com.fasterxml.jackson.databind.DeserializationContext.reportMappingException(DeserializationContext.java:1234) at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1122) at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1075) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromArray(BeanDeserializerBase.java:1374) at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:174) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:150) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3798) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2740) at file.readers.AcceptanceCriteriaJsonReader.main(AcceptanceCriteriaJsonReader.java:51)
我的类(class)如下:
public class AcceptanceCriteria{
private String given;
private String and;
private String when;
private String then;
public String getGiven(){
return given;
}
public void setGiven(String given){
this.given = given;
}
public String getAnd(){
return and;
}
public void setAnd(String and){
this.and = and;
}
public String getWhen(){
return when;
}
public void setWhen(String when){
this.when = when;
}
public String getThen(){
return then;
}
public void setThen(String then){
this.then = then;
}
}
...
import java.util.List;
public class TestAcceptanceCriteria {
private String name;
private List<AcceptanceCriteria> acceptanceCriteria;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public List<AcceptanceCriteria> getAcceptanceCriteria(){
return acceptanceCriteria;
}
public void setAcceptanceCriteria(List<AcceptanceCriteria> acceptanceCriteria){
this.acceptanceCriteria = acceptanceCriteria;
}
}
最佳答案
您正在尝试将实体数组反序列化为单个对象,这会导致问题。让我们试试:
List<TestAcceptanceCriteria> acceptanceCriteria = null;
acceptanceCriteria = mapper.readValue(json, new TypeReference<List<TestAcceptanceCriteria>>(){});
关于java - com.fasterxml.jackson.databind.JsonMappingException : Can not deserialize instance of TestAcceptanceCriteria out of START_ARRAY token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43415285/
我正在尝试将包从“com.fasterxml.jackson”重新定位到我自己的包(即“mypackage.com.fasterxml.jackson”),然后在我拥有的另一个 JAR 中使用它。 我
我将 jackson 库从 2.5.4 升级到 2.10.1,如下所示,我收到以下错误: "WFLYCTL0080: Failed services" => { "jboss.depl
我在 Wildfly 8.2.1 和 Glassfish 4.1 中使用 Spring Data JPA 部署 Spring MVC 应用程序时遇到问题(它在 Wildfly 10 中工作,但我不允许
问题如何指示ObjectMapper他应该通过某些条件(字段)过滤对象的嵌套集合。通过代码查看解释: 通过代码进行解释: 我必须将 Container 对象转换为 JSON。但我想根据 Entry.v
我有一个如下的dto public class MyClass { @JsonProperty("value") @JsonInclude(JsonInclude.Include.NO
有没有办法反序列化 JSON 数组 {["a", "b", 1]} 进入以下 Java 类 class MyObject { private String firstItem; private
How does Jackson deserialisation work when creating a Java object from JSON? A common conception is
我从代码中得到以下输出:{“列表”:[{“x”:“y”},{“a”:“b”}]} 相反,我想得到输出[{"x":"y"},{"a":"b"}] 代码如下。 public class Test { Li
我需要生成确认此 XSD 的 XML: 所以输出是这样的: A B C 问题是,如果我像这样在 Java bean 中注释变量: @JsonProperty("Line"
我有来自客户的 xml: 和简单的 Java 类 import com.fasterxml.jackson.dataformat.xml.annotation.Jackso
我已映射实体,并以 JSON 格式发送到服务。这是我的实体 @Entity @Table(name = "company") @JsonIdentityInfo(generator = ObjectI
以下类(class)显示问题 - 无法解决导入 com.fasterxml.jackson - import com.fasterxml.jackson.annotation.JsonIgnorePr
我的字符串是:json = {"foo":"bar"}{"foo":"bar"} ======================== ObjectMapper mapper = new ObjectMa
我有以下 JSON: "segmentid": { "mot": { "@displaytype": "B", "@type": "BLT",
我有这样的 csv 文件: headerA;headerB;headerC val1;val2;val3; val4;val5;val6; some_word;val7; 所以。最后一行不同。它不适合
我有以下 XML 架构: Intermediate A Intro to A Advanced B 我需要将其转换为 POJO 为: public class Schedu
我正在使用两个 JSON。 第一个具有字符串形式的 ID。 "details": { "id": "316.0" } 另一个的 ID 为 Integer。 "details": { "
当尝试序列化一个类别时,我得到一个 stackoverflow。 异常 Warning: StandardWrapperValve[dispatcher]: Servlet.service() for
在 maven pom.xml 中: com.fasterxml.jackson.core jackson-core 2.5.0
本文整理了Java中com.fasterxml.jackson.core.json.WriterBasedJsonGenerator类的一些代码示例,展示了WriterBasedJsonGenerat
我是一名优秀的程序员,十分优秀!