値を持つコンテナ オブジェクトを使用してメタデータ構造をモデル化する jaxb オブジェクトがいくつかあります。これは、別のコンテナ オブジェクトまたは単純なオブジェクト (文字列など) である可能性があります。
@XmlRootElement(name = "value")
public class Value
{
protected SimpleType type;
protected Container container;
@XmlElement
public SimpleType getType()
{
return type;
}
public void setType(SimpleType type)
{
this.type = type;
}
@XmlInverseReference(mappedBy="value")
@XmlElement
public Container getContainer()
{
return container;
}
public void setContainer(Container container)
{
this.container = container;
}
}
@XmlRootElement(name = "container")
public class Container
{
protected Value value;
@XmlElement
public Value getValue()
{
return value;
}
public void setValue(Value value)
{
this.value = value;
}
}
@XmlRootElement(name = "type")
@XmlEnum
public enum SimpleType
{
@XmlEnumValue("String")STRING,
@XmlEnumValue("Boolean")BOOLEAN,
....etc.
}
XML は問題ないように見えますが、JSON には「コンテナー」属性が重複してしまいます。
<container>
<value>
<container>
<value>
<type>String</type>
</value>
</container>
</value>
</container>
"container": {
"value": {
"container": {
"container": {
"value": {
"type": "STRING"
}
}
}
}
}
なぜこの違いがあるのですか?