我有一个关于通过JAXB封送的小问题。
当前我有一个对象的HashMap
@XmlJavaTypeAdapter(HashMapAdapter.class)
private Map<String, Object> data;
由自定义HashMapAdapter封送的being
public class HashMapAdapter extends XmlAdapter<HashMapAdapter.AdaptedMap,
Map<String, Object>> {
@XmlRootElement
public static class AdaptedMap {
@XmlVariableNode("key")
List<Data> entries = new ArrayList<>();
}
public static class Data {
@XmlTransient
public String key;
@XmlValue
public Object value;
}
@Override
public Map<String, Object> unmarshal(AdaptedMap v) throws Exception {
throw new NotImplementedException();
}
@Override
public AdaptedMap marshal(Map<String, Object> map) throws Exception {
AdaptedMap adaptedMap = new AdaptedMap();
for (Map.Entry<String, Object> entry : map.entrySet()) {
Data data = new Data();
data.key = entry.getKey();
data.value = entry.getValue();
adaptedMap.entries.add(data);
}
return adaptedMap;
}
}
封送基于以下文章:http://blog.bdoughan.com/2013/06/moxys-xmlvariableNode-using-maps-key-as.html
HashMap由布尔值、长值或字符串值填充。
因此,关于Blog,预期的JSON输出应该是:
"data": {
"booleanValue": true,
"stringValue": "test",
"longValue": 1234
}
"data": {
"longValue": {
"type": "long",
"value": 1234
},
"stringValue": {
"type": "string",
"value": "test"
},
"booleanValue": {
"type": "boolean",
"value": true
}
}
西蒙
我手边没有一个MOxY实现,你能试试这个并告诉我它是否有效吗?
public static class Data {
@XmlTransient
public String key;
@XmlElements({
@XmlElement(type=Long.class),
@XmlElement(type=String.class),
@XmlElement(type=Boolean.class)
})
@XmlPath(".")
public Object value;
}
编辑:
使用此方法时得到的输出是:
"data": {
"stringValue": {
"value": test
},
"booleanValue": {
"value": true
},
"longValue": {
"value": 1234
}
}
问题内容: 我有许多需要自定义编组的结构。在测试时,我使用的是JSON和标准的JSON marshaller。由于它不会封送未导出的字段,因此我需要编写一个自定义的MarshalJSON函数,该函数运行良好。当我在父结构上调用json.Marshal时,该结构包含需要自定义编组的字段,它工作正常。 现在,我需要将所有内容封送给BSON进行MongoDB的工作,而我找不到任何有关如何编写自定义BSO
我目前正在尝试将一些现有的XML解组到我手工创建的几个类中。问题是,我总是得到一个错误,告诉我,JaxB需要一个天气元素,但却找到了一个天气元素。(?) UnMarshalException:意外元素(URI:“http://www.aws.com/aws”,本地:“weather”)。需要的元素为<{}API>、<{}Location>、<{}Weather> 这就是我试图解析的XML: 我不太
并设置Claas
问题内容: 如何从外部包向结构添加自定义JSON封送处理?我无法将和添加到这些结构中。 问题答案: 您可以将该结构添加到您定义的结构中。然后添加功能,并给你的结构:
我正在尝试使用JAXB进行封送处理。 我的输出是这样的: ...但我需要这样的输出: 如果取消对代码的注释,则会得到。没有它,我可以编译,但我不能得到所需的精确输出。 我的豆子长这样: 适配器类
我正在构建一系列链接类,我希望这些类的实例能够整理成XML,这样我就可以将它们保存到一个文件中,以后再读进去。 目前我使用以下代码作为测试用例: XML输出为: 元素为空有什么原因吗?我希望它包含日期的字符串表示(即)。为了做到这一点,我需要编写一些我自己的代码吗? 的输出是: