2016-01-08 246 views
0

是否可以删除生成的JSON字符串的层次层次结构,其中Java类结构是最终的(请参见下面的Class Definition)?目前,人口Root类的抽象的结果显示在JSON_ACTUAL但我期待JSON_EXPECTED_OUTPUT因为没有重组类定义的JSON响应。从结构类中删除JSON级别的层次结构

类定义

@XmlRootElement("json") 
@XMLAccessorType(XmlAccessType.FIELD) 
class Root { 
    @XMLElement(name="keyOne") 
    String keyOne; 

    @XMLElement(name="childOne") 
    ChildOne childOne; 

    @XMLElement(name="childTwo") 
    ChildTwo childTwo; 

    // Possible more child. 
    // Child can have its own child property(ies) 
} 

@XmlRootElement 
class ChildOne { 
    @XMLElement(name="keyTwo") 
    String keyTwo; 

    @XMLElement(name="keyThree") 
    String keyThree; 
} 

@XmlRootElement 
class ChildTwo { 
    @XMLElement(name="keyFour") 
    String keyFour; 

    @XMLElement(name="keyFive") 
    List<ChildThree> keyFive; 
} 

JSON_ACTUAL

"json": { 
    "keyOne": <valueFor_keyOne>, 
    "childOne": { 
     "keyTwo": <valueFor_keyTwo>, 
     "keyThree": <valueFor_keyThree> 
    } 
} 

JSON_EXPECTED_OUTPUT

"json": { 
    "keyOne": <value_for_keyOne>, 
    "keyTwo": <value_for_keyTwo>, 
    "keyThree": <value_for_keyThree>, 
    "keyFive": [<elementList_for_keyFive>] 
} 

任何提示关于如何从的Java类结构生成JSON_EXPECTED_OUTPUT类定义


编辑:根

  • 拥有多个子属性
  • 儿童可能包含它自己的子类属性(IES)
  • 属性可以是一个集合或数组。

回答

0

对于您应该扩展该类

@XmlRootElement("json") 
@XMLAccessorType(XmlAccessType.FIELD) 
class Root extends ChildOne { 
    @XMLElement(name="keyOne") 
    String keyOne; 

} 

所以,在不同的类中的所有领域都包含在当前的实例。

+0

如果我有另一个或多个子类,它会是相同的结构。此外,子类中有它自己的子类吗?参见上面的编辑版本。 –

+0

请问您可以添加更多代码吗? – saravanakumar

+0

查看更新版本。谢谢。 –