我正在使用Spring Boot,我想将POJO转换为XML。最简单的方法是什么?
例如,我有一个Person
POJO:
public class Person {
private String firstName;
private String lastName;
//getters/setters
}
如何将List<Person>
转换为此:
<rootElement>
<person>
<firstName>John</firstName>
<lastName>Smith</lastName>
</person>
</rootElement>
我应该使用哪个类来封装它? Jackson的等效项是JsonNode
软件包中的com.fasterxml.jackson.databind
。我可以从Spring Boot中使用任何预配置的bean吗?
答案 0 :(得分:0)
手动
您可以使用上面提到的Jackson library with XML dataformat:
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.8'
序列化:
Person person = new Person("Ima", "Person")
XmlMapper xmlMapper = new XmlMapper();
String personXml = xmlMapper.writeValueAsString(person);
反序列化:
XmlMapper xmlMapper = new XmlMapper();
Person person = xmlMapper.readValue(personXml, SimpleBean.class);
通过REST API
我将本节保留在此处,因为它可能与将SpringBoot用于Web服务器的其他人有关:
或者,如果您使用标准的spring-boot-starter-web并希望通过REST API提供输出XML,那么Spring将自动为您进行转换。例如,此方法的Person返回类型意味着Spring将自动处理personService.findById(id)输出的转换和传输
@GetMapping("/person")
public Person getPerson(@RequestParam("id") String id) {
return personService.findById(id);
}
默认情况下,它将以JSON格式提供有效载荷对象,但您可以通过为Jackson XML data format添加以上依赖项来将其更改为XML。
并在请求标头中另外将接受类型设置为Application / XML
答案 1 :(得分:0)
要直接将列表转换为xml ,我使用|Big Group|Sub Group| Animals
-----------------------------------
| A1 | a | raccoon; bear
-----------------------------------
| B2 | b | dog
-----------------------------------
| B2 | c | tiger; lion
-----------------------------------
| A1 | d | deer
-----------------------------------
。
您可以如下注释pojo类
Sub combi()
Dim i As Long
lastRow = 7
For i = lastRow To 2 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Cells(i - 1, 3).Value = Cells(i - 1, 3).Value & ";" & Cells(i, 3).Value
Rows(i).Delete
End If
Next i
End Sub
并制作一个包装它的List类。
javax.xml.bind.marshaller
}
您可以在下面的方法中使用Jaxb。
@XmlRootElement("Person")
@XmlAccessorType(XmlAccessType.FIELD)
public class Person {
private String firstName;
private String lastName;
//getters/setters
}
输出将是:
@XmlRootElement(name = "Persons_List")
public class Persons_List {
List<Person> persons;
// Getters and Setters