【发布时间】:2019-10-29 22:52:12
【问题描述】:
我正在尝试使用 xslt 将 xml 转换为 json。当我有单个节点时,JSON 输出不包含数组,但是当它有多个节点时,它将显示为数组
如果我有单个报告条目,则 JSON 输出如下(缺少数组):
XML:
<Report_Data>
<Report_Entry>
<ID>0025440</ID>
</Report_Entry>
</Report_Data>
结果:
{
"Report_Data": {
"Report_Entry":
{ "ID": "0025440" }
}
}
当我在 XML 中有多个条目时,输出如下(存在数组):
XML:
<Report_Data>
<Report_Entry>
<ID>0025440</ID>
</Report_Entry>
<Report_Entry>
<ID>00254401</ID>
</Report_Entry>
</Report_Data>
结果:
{
"Report_Data": {
"Report_Entry": [
{ "ID": "0025440" },
{ "ID": "0025441" }
]
}
}
这是一个尝试在 WSo2 中添加数组的示例输入 XML 文件。这无法在 JSON 输出中添加数组。
a345ea1b59d c867b9511fa201
CCH2 c867b9511fa201 c867b9511fa201 5005854
<xyz:AStatus xyz:Descriptor="Pending"> <xyz:ID xyz:type="ID">5e3ae98c7e4b4af9836cd</xyz:ID> <xyz:ID xyz:type="DID">PENDING</xyz:ID> </xyz:AStatus> <xyz:Net>0</xyz:Net> <xyz:AMoment>2019-10-10</xyz:AMoment> </xyz:Report_Entry> </xyz:Report_Data> </env:Body> </env:Envelope> </xyz:Body> </xyz:Envelope>
格式正确,没有任何问题,因为它有多个报告条目:
a345ea1b59d c867b9511fa201
CCH2 c867b9511fa201 c867b9511fa201 5005854
<xyz:AStatus xyz:Descriptor="Pending"> <xyz:ID xyz:type="ID">5e3ae98c7e4b4af9836cd</xyz:ID> <xyz:ID xyz:type="DID">PENDING</xyz:ID> </xyz:AStatus> <xyz:Net>0</xyz:Net> <xyz:AMoment>2019-10-10</xyz:AMoment> </xyz:Report_Entry> <xyz:Report_Entry> <xyz:BusinessAsset xyz:Descriptor="12"> <xyz:ID xyz:type="ID">a345ea1b59d</xyz:ID> </xyz:BusinessAsset> <xyz:CH xyz:Descriptor="UCCH2"> <xyz:ID xyz:type="ID">c867b9511fa201</xyz:ID> <xyz:ID xyz:type="OID" >CCH2</xyz:ID> <xyz:ID xyz:type="CID" >CCH2</xyz:ID> </xyz:CH> <xyz:CH xyz:Descriptor="UCCH3"> <xyz:ID xyz:type="ID">c867b9511fa201</xyz:ID> <xyz:ID xyz:type="OID" >CCH3</xyz:ID> <xyz:ID xyz:type="CID" >CCH3</xyz:ID> </xyz:CH> <xyz:CH xyz:Descriptor="UCCH4"> <xyz:ID xyz:type="ID">c867b9511fa201</xyz:ID> <xyz:ID xyz:type="OID" >CCH4</xyz:ID> <xyz:ID xyz:type="CID" >CCH4</xyz:ID> </xyz:CH> <xyz:AID>5005854</xyz:AID> <xyz:AStatus xyz:Descriptor="Pending"> <xyz:ID xyz:type="ID">5e3ae98c7e4b4af9836cd</xyz:ID> <xyz:ID xyz:type="DID">PENDING</xyz:ID> </xyz:AStatus> <xyz:Net>0</xyz:Net> <xyz:AMoment>2019-10-10</xyz:AMoment> </xyz:Report_Entry> </xyz:Report_Data> </env:Body> </env:Envelope> </xyz:Body> </xyz:Envelope>
【问题讨论】: