无法将xml转换为java pojo对象。请查看以下详细信息:-
输入xml-
<?xml version='1.0' encoding='UTF-8'?>
<Company>
<Employee>
<Name>E1</Name>
<Id>123</Id>
</Employee>
<Employee>
<Name>E2</Name>
<Id>678</Id>
</Employee>
</Company>
pom.xml有依赖关系:-
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.6</version>
</dependency>
公司Java语言
package com.test;
import java.util.List;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
@JacksonXmlRootElement
public class Company {
@JacksonXmlProperty(localName = "Employee")
private List<Employee> employee;
public Company() {}
public Company(List<Employee> employee) {
super();
this.employee = employee;
}
public List<Employee> getEmployee() {
return employee;
}
public void setEmployee(List<Employee> employee) {
this.employee = employee;
}
}
受雇者Java语言
package com.test;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
public class Employee {
@JacksonXmlProperty(localName = "Name")
private String name;
@JacksonXmlProperty(localName = "Id")
private String id;
public Employee() {}
public Employee(String name, String id) {
super();
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
将xml转换为java代码:-
JacksonXmlModule module = new JacksonXmlModule();
XmlMapper objectMapper = new XmlMapper(module);
module.setDefaultUseWrapper(false);
Company comapny = objectMapper.readValue(xml,Company.class);
下面的错误我在转换xml到pojo时得到
线程“main”com中出现异常。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法构造com的实例。测验Employee(尽管至少存在一个创建者):在[源:(StringReader);行:4,列:7](通过引用链:com.test.Employee[“Company”]处没有字符串参数构造函数/工厂方法从字符串值('E1')反序列化-
问题在于全局模块的使用。在反序列化中设置DefaultUseWrapper(false)
,而DefaultUseWrapper的使用应限于嵌套集合列表
@JacksonXmlRootElement
public class Company {
@JacksonXmlProperty(localName = "Employee")
@JacksonXmlElementWrapper(useWrapping = false)
private List<Employee> employee;
...other fields, setters, getters and constructors from your code
}
您必须删除模块。设置DefaultUseWrapper(false)并重写主类,如下所示:
JacksonXmlModule module = new JacksonXmlModule();
XmlMapper objectMapper = new XmlMapper(module);
Company company = objectMapper.readValue(xml,Company.class);
System.out.println(objectMapper.writeValueAsString(company));
在调用检索json响应并解析它时面临问题。 型号: person.java 地址.Java 读取此数据的代码, 无论我得到什么例外, 提取类型和内容类型[application/json;charset=utf-8]的响应时调用ABS ServiceError时的RestClientException;嵌套异常为org.springframework.http.converter.httpmess
以下方法transtToObject使用Jackson将XML转换为Object。我得到以下错误: 以下是核心类: 这是输入XML: 以下是两个POJO: 这是pom文件中的依赖项。
问题内容: 使用包中的类时遇到了json解析问题,而我得到的错误是: 发生此问题的Web应用程序是使用AngularJS前端的Spring MVC应用程序,但我可以使用更小的所有Java程序来复制该问题。这是我的豆子: Shipment.java Activity.java ActivityLocation.java 地址.java 这是我可以正确映射json的代码: 调整var中的数据时,遇到了
我正在尝试反序列化以下JSON 在以下自定义反序列化程序的帮助下 进入以下对象结构 我得到以下错误 通用域名格式。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法构造OrderId的实例(尽管至少存在一个创建者):没有从字符串值反序列化的字符串参数构造函数/工厂方法({“type”:“TAKEAWAY”,“data”:{“OrderId”:“AW
我使用RestTemplate。exchange在我的Spring Boot应用程序中获得以下响应: 广告商。java: 广告商java: 但我有以下例外: 我不明白为什么id“1057343”不能反序列化。 你能帮忙吗?提前谢谢
我正在尝试使用RestTemplate(Spring Boot)读取来自rest服务的响应: 但当响应中存在错误数组时: 我不明白为什么没有构造器/工厂方法从字符串值反序列化。 谢谢