是否可以在生成的JSON字符串中删除级别层次结构,其中Java类结构是最终的(请参阅下面的Class Definition
)?目前,填充的Root
类的抽象结果显示在 JSON_ACTUAL 上,但我希望 JSON_EXPECTED_OUTPUT 作为JSON响应而不重构类定义。< / p>
课程定义
@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 的任何提示?
编辑:
答案 0 :(得分:0)
为此你应该扩展那个类
@XmlRootElement("json")
@XMLAccessorType(XmlAccessType.FIELD)
class Root extends ChildOne {
@XMLElement(name="keyOne")
String keyOne;
}
这样,各个类中的所有字段都包含在当前实例中。