【发布时间】:2014-10-12 21:40:50
【问题描述】:
我需要以特定方式序列化 POJO。我以这种方式使用 JAXB:
public void convertToJson(TaskActionData input) {
try {
JAXBContext context = JAXBContext.newInstance(TaskActionData.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false);
marshaller.marshal(input, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
现在我正在以这种形式将此对象转换为 JSON:
{
"name": "value",
"name": "value",
"name":
[ true,
false,
false,
false,
false,
false,
false,
false,
false
],
"name": {"name":
[{
"name": "value",
"name": [{
"name": "value",
"name": "value",
"name": "value"
}],
"name": [{
"name": "value",
"name": "value",
"name": "value",
"name": "value"
}],
"name": "value",
"name": [],
"name": [{
"name": "value",
"name": "value",
"name": "value"
}]
}]
}}
我需要将每个列表都包装成“项目”标签,就像这样:
{
"name": "value",
"name": "value",
"name": {
"name": [],
"items": [
true,
false,
false,
false,
false,
false,
false,
false,
false
]
},
"name": {"name": {"items": [{
"name": "Tvalue",
"name": {"items": [{
"name": "value",
"name": "Bvalue",
"name": "value"
}]},
"name": {"items": [{
"name": "Tvalue",
"name": "value",
"name": "value",
"name": "value"
}]},
"name": "value",
"name": {"items": []},
"name": {"items": [{
"name": "value",
"name": "value",
"name": "value"
}]}
}]}}}
因此需要编写自定义序列化程序。我试图找到一些解决方案,但没有成功
【问题讨论】:
-
因此需要编写自定义序列化程序。我试图找到一些解决方案,但没有成功 - 您尝试了哪些解决方案?您的自定义序列化程序有什么问题?
-
嗯,我也没有找到任何例子。也许我将不得不从头开始编写它:(
-
我用替换和正则表达式解决了它:)
标签: java json serialization jaxb adapter