2016-01-08 464 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

查看更新版本。謝謝。 –