我有一个 XML 格式的有效负载,我需要将其转换为 JSON。XML 包含许多键值对以及许多属性,我需要将这些属性也包含在 JSON 中。
<CustomData>
<CustomIdentifier attribute1="value1" attribute2="value2">
test </CustomIdentifier>
</CustomData>
这个output writeAttributes=true
可以,__text
但我并不想拥有它。我想动态地改变它,以便它__text
成为一个键。我有更多的属性,我不能到处都有__text
例子:
{
"CustomData": {
"CustomIdentifier": {
"@attribute1": "value1",
"@attribute2": "value2",
"CustomIdentifier": "test"
}
}
}
内置功能不允许自定义输出。要实现预期的输出,您需要自定义转换。它可以通过创建一个递归函数来实现,当它收到一个具有属性的对象时,输出一个具有当前值的对象,该对象位于与现有键同名的新键下,并将属性连接为新的键值。否则,返回应用相同转换的递归值。任何其他类型都按原样返回。我的实现包括映射数组的每个元素,尽管 XML 输入中没有数组。它应该适用于其他格式,但我还没有测试过。
例子
功能:
输入:
输出: