有没有办法将xml文件转换为json?XML可以是任何结构,因此没有用于实例化的POJO类.我需要将xml转换为json或转换为没有根节点的Map.
例如:
<import name="person">
<item>
<firstName>Emil</firstName>
<lastName>Example</lastName>
<addresses>
<address>
<street>Example Blvd.</street>
</address>
<address>
<street>Example Ave.</street>
</address>
</addresses>
</item>
</import>
Run Code Online (Sandbox Code Playgroud)
预期的JSON
{
"firstName": "Emil",
"lastName": "Example",
"addresses": [
{ "street" : "Example Blvd." },
{ "street" : "Example Ave." }
]
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 WSO2 ESB 并尝试将 XML 有效负载转换为 Json。
<property name="messageType" value="application/json" scope="axis2"/>
Run Code Online (Sandbox Code Playgroud)
上面的属性中介器将我的 xml 转换为 json,一切正常。
问题出在我的 XML 负载中的子节点上。
当 xml 为
<users>
<user>user1</user>
<user>user2</user>
</users>
Run Code Online (Sandbox Code Playgroud)
它被转换为
"users": {
"user": [
"user1", "user2"
]
}
Run Code Online (Sandbox Code Playgroud)
所以我的其余完整端点接收 json 有效负载,该负载期望列表“用户”工作正常。
但是当 xml 是
<users>
<user>user1</user>
</users>
Run Code Online (Sandbox Code Playgroud)
转换后的 json 看起来像这样,
"users": {
"user": "user1"
}
Run Code Online (Sandbox Code Playgroud)
因此,期望“用户”列表的restfull端点没有得到列表,而是发送了一个字符串,并且数据类型不匹配导致找不到端点。
如果进一步尝试,
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:json="http://james.newtonking.com/projects/json">
<users>
<user json:Array="true">user1</user>
</users>
</Data>
Run Code Online (Sandbox Code Playgroud)
这个转换给出一个 json 为,
{
"Data": {
"users": {
"user": {
"@Array": "true",
"$": "user1"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是, …
如果我有
<xml><name>himasnhu</name><age>24</age></xml>
Run Code Online (Sandbox Code Playgroud)
我怎样才能把它隐藏起来
{"name":"himanshu","age":24} .
Run Code Online (Sandbox Code Playgroud)
谢谢。