WSDL から Web サービス クライアントを作成しています。SOAP 呼び出しから取得した XML を JSON オブジェクト (RESTful WS として) に変換したいと考えています。
GSON を試してみましたが、TypeAdapter が必要です。約 75 個のオブジェクトがあるため、より一般的なものが必要です。Jackson も使用しましたが、XML として変更せずに送信するだけです。
NetBeans (wsimport) は多くのクラスを生成します。その例を以下に示します。これを JSON オブジェクトに変換するにはどうすればよいですか?
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "addressData", propOrder = {
"addressLine1",
"addressLine2"
})
public class AddressData {
@XmlElement(required = true)
protected String addressLine1;
@XmlElementRef(name = "addressLine2", type = JAXBElement.class, required = false)
protected JAXBElement<String> addressLine2;
/**
* Gets the value of the addressLine1 property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAddressLine1() {
return addressLine1;
}
/**
* Sets the value of the addressLine1 property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAddressLine1(String value) {
this.addressLine1 = value;
}
/**
* Gets the value of the addressLine2 property.
*
* @return
* possible object is
* {@link JAXBElement }{@code <}{@link String }{@code >}
*
*/
public JAXBElement<String> getAddressLine2() {
return addressLine2;
}
/**
* Sets the value of the addressLine2 property.
*
* @param value
* allowed object is
* {@link JAXBElement }{@code <}{@link String }{@code >}
*
*/
public void setAddressLine2(JAXBElement<String> value) {
this.addressLine2 = value;
}
}