3

JAXB を使用してリストを含む JSON のルート要素をマーシャリング/アンマーシャリングするにはどうすればよいですか?

したがって、JSONは次のようになります

{
    "tag" : [
        {
            "id" : "a",
            "id2": "aa" 
        },
        {
            "id" : "b",
            "id2" : "bb" 
        },
        {
            "id" : "c",
            "id2" : "cc" 
        } 
    ] 
}

Jettison を介して JSON をサポートする Apache CXF を使用しています。

Java クラスは次のようになります。リストには XmlList 注釈を使用し、ルート要素にそのリストを含めるには XmlValue を使用できます。問題は、XmlValue がユーザー定義型をとらないことです。

@XmlRootElement(name = "tag")
public class test
{
    @XmlList
    @XmlValue
    private List<UserDefinedType> testList;
}

これを回避する方法はありますか。着信 JSON をアンマーシャリングするためにこれが必要です。ここからこのアイデアを得ました http://bdoughan.blogspot.com/2010/09/jaxb-collection-properties.html

4

2 に答える 2

2

これは、あなたが言及した JSON 形式で機能するはずです。ただし、特定の XML 形式にもマーシャリング/アンマーシャリングしたい場合は機能しない可能性があります。

@XmlRootElement
public class Test {
    @XmlElement(name = "tag")
    private List<UserDefinedType> testList;
}

public class UserDefinedType {
    @XmlElement(name = "id")
    private String someId;

    @XmlElement(name = "id2")
    private String someId2;
}
于 2011-12-14T17:26:09.887 に答える