1. ホーム
  2. java

[解決済み] JAXBを使用してXML文字列からオブジェクトを作成する

2022-04-15 06:02:47

質問

以下のコードを使用して、XML文字列のマーシャルを解除し、以下のJAXBオブジェクトにマッピングするにはどうすればよいですか?

JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Person person = (Person) unmarshaller.unmarshal("xml string here");


@XmlRootElement(name = "Person")
public class Person {
    @XmlElement(name = "First-Name")
    String firstName;
    @XmlElement(name = "Last-Name")
    String lastName;
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

解決方法は?

XMLコンテンツを渡すには、コンテンツを Reader で、代わりにそれをアンマーシャルする。

JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

StringReader reader = new StringReader("xml string here");
Person person = (Person) unmarshaller.unmarshal(reader);