Tôi đang xây dựng một loạt các lớp được liên kết có các cá thể mà tôi muốn có thể sắp xếp thành XML để tôi có thể lưu chúng vào một tệp và đọc lại chúng sau.Marshalling LocalDate bằng cách sử dụng JAXB
Hiện nay tôi đang sử dụng đoạn mã sau như một trường hợp thử nghiệm:
import javax.xml.bind.annotation.*;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.time.LocalDate;
public class LocalDateExample
{
@XmlRootElement
private static class WrapperTest {
public LocalDate startDate;
}
public static void main(String[] args) throws JAXBException
{
WrapperTest wt = new WrapperTest();
LocalDate ld = LocalDate.of(2016, 3, 1);
wt.startDate = ld;
marshall(wt);
}
public static void marshall(Object jaxbObject) throws JAXBException
{
JAXBContext context = JAXBContext.newInstance(jaxbObject.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(jaxbObject, System.out);
}
}
Kết quả XML là:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wrapperTest>
<startDate/>
</wrapperTest>
Có một lý do tại sao các yếu tố startDate
là trống rỗng? Tôi muốn nó chứa biểu diễn chuỗi của ngày (ví dụ: toString()
). Tôi có cần viết một số mã của riêng tôi để làm điều này không?
Kết quả của java -version
là:
openjdk version "1.8.0_66-internal"
OpenJDK Runtime Environment (build 1.8.0_66-internal-b17)
OpenJDK 64-Bit Server VM (build 25.66-b17, mixed mode)
vẻ để thực hiện chính xác những gì tôi muốn - cảm ơn! – pwaring