Java 从结构类中删除JSON级别的继承人权限
是否可以删除生成的JSON字符串上的级别层次结构,其中Java类结构是最终的(请参见下面的Java 从结构类中删除JSON级别的继承人权限,java,json,Java,Json,是否可以删除生成的JSON字符串上的级别层次结构,其中Java类结构是最终的(请参见下面的类定义)?目前,已填充的Root类的抽象结果显示在JSON_ACTUAL上,但我希望JSON_EXPECTED_输出为JSON响应,而不重新构造类定义 类别定义 @XmlRootElement("json") @XMLAccessorType(XmlAccessType.FIELD) class Root { @XMLElement(name="keyOne") String keyOne;
类定义)?目前,已填充的Root
类的抽象结果显示在JSON_ACTUAL上,但我希望JSON_EXPECTED_输出为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;
}
@XmlRootElement(“json”)
@XMLAccessorType(XmlAccessType.FIELD)
类根{
@xmlement(name=“keyOne”)
串键;
@xmlement(name=“childOne”)
ChildOne ChildOne;
@xmlement(name=“childTwo”)
孩子二个孩子二个;
//可能更多的孩子。
//子对象可以有自己的子属性
}
@XmlRootElement
ChildOne班{
@xmlement(name=“keytower”)
字符串键2;
@XMLElement(name=“keytree”)
字符串键三;
}
@XmlRootElement
二班{
@xmlement(name=“keyFour”)
字符串键四;
@xmlement(name=“keyFive”)
列出关键五项;
}
JSON\u实际值
"json": {
"keyOne": <valueFor_keyOne>,
"childOne": {
"keyTwo": <valueFor_keyTwo>,
"keyThree": <valueFor_keyThree>
}
}
“json”:{
“关键一号”:,
“childOne”:{
“关键二”:,
“关键三点”:
}
}
JSON\u预期输出
"json": {
"keyOne": <value_for_keyOne>,
"keyTwo": <value_for_keyTwo>,
"keyThree": <value_for_keyThree>,
"keyFive": [<elementList_for_keyFive>]
}
“json”:{
“关键一号”:,
“关键二”:,
“关键三”:,
“五键”:[]
}
关于如何从类定义的Java类结构生成JSON预期输出的任何提示
编辑:
- 在根目录上具有多个子属性
- 子类可能包含自己的子类属性
- 属性可以是集合或数组
为此,您应该扩展该类
@XmlRootElement("json")
@XMLAccessorType(XmlAccessType.FIELD)
class Root extends ChildOne {
@XMLElement(name="keyOne")
String keyOne;
}
这样,各个类中的所有字段都包含在当前实例中 如果我有另一个或多个子类,它会是相同的结构吗。子类也有自己的子类吗?见上面的编辑版本。