我有一个用例,我需要 xmlns 命名空间属性作为从 xml 生成的 json 中的键值对。但目前我无法这样做,因为命名空间被忽略了。
xml 是
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:Reference Uri="../VOC_Core/$metadata">
<edmx:Include Namespace="Org.OData.Core.V1" Alias="Core" />
</edmx:Reference>
<edmx:DataServices>
<Schema Namespace="EPMSample" xmlns="http://docs.oasis-open.org/odata/ns/edm">
</Schema>
</edmx:DataServices>
生成的json
{
"Version":"4.0",
"Reference":{
"Uri":"../VOC_Core/$metadata",
"Include":{
"Namespace":"Org.OData.Core.V1",
"Alias":"Core"
}
},
"DataServices":{
"Schema":{
"Namespace":"EPMSample"
}
}
}
我使用fastxml jackson进行转换
XmlMapper xmlMapper = new XmlMapper();
JsonNode node = xmlMapper.readTree(xml.getBytes());
ObjectMapper jsonMapper = new ObjectMapper();
String json = jsonMapper.writeValueAsString(node);
如何将 xmlns 属性作为键值对包含在 json 中我需要做哪些配置才能保留 xmlns 属性?