【发布时间】:2020-07-11 22:24:16
【问题描述】:
我在从自动从 XML 转换的 JSON 中获取数据时遇到困难,希望获得专业知识来确定实现目标的最佳方式。
我有一条从 restful 服务读取的 xml 消息。 我在帖子底部包含了 xml 消息的缩短匿名版本以供参考。 消息是关于一个人的详细信息,一个人可以有多个地址。 每个地址可以有 0 到 6 个地址行,如果地址行值没有填写,系统不会将它们包含在 xml 文档中。
我使用 json() 函数将其转换为 Json。 然后我解析 json 以使值易于访问。
这是我遇到问题的地方。
当我使用 json() 函数将消息转换为 Json 时,我得到以下 Json 模式(见帖子底部)。 请注意,地址不是数组格式,实际上都不是。
我不确定如何以适用于其他非此特定消息的 PersonMessageService 消息的方式从中提取值。
我的问题是:
- 这个自动生成的 json 是不是很笨重而且不是很实用?
- 有没有更好的方法在逻辑应用中从 xml 生成 json?
- 如何在转换后从我的 json 中获取值?
XML 消息
<PersonMessageService version="1.5.3">
<response timestamp="2020-03-31T08:48:42.273557+01:00">
<status>SUCCESS</status>
<description/>
<receipt>A227C1E61EFA2B05E8530100007F6E90</receipt>
</response>
<payload>
<PersonData>
<MessageMeta>
<messageId>123456</messageId>
<MessageChecksum>c7875a0fd6869bb1234c82bd00712345</MessageChecksum>
</MessageMeta>
<personRecord SystemKey="123456789" timestamp="2020-01-31T08:48:35">
<GUID>9889898</GUID>
<idNumber>3578951</idNumber>
<firstName>Joe</firstName>
<surname>Bloggs</surname>
<title>Mr</title>
<gender>M</gender>
<dateOfBirth>1980-01-01</dateOfBirth>
<homeAddress addressObjectId="10001" timestamp="2018-11-12T14:58:01">
<address>
<addressLine1>123 Fake St</addressLine1>
<country>United States</country>
</address>
<email>Joe@bloggs.com</email>
<mobile>5558878558</mobile>
</homeAddress>
<termAddress addressObjectId="10002" timestamp="2018-11-12T15:07:01">
<address/>
<email>joebloggs@hotmail.com</email>
</termAddress>
<workAddress addressObjectId="10003" timestamp="2018-11-12T15:07:01">
<address/>
</workAddress>
<mailingLabel addressObjectId="10004" timestamp="2018-11-12T14:58:01">
<address>
<addressLine1>58 Fake Bvd</addressLine1>
<addressLine2>Fake County</addressLine2>
<country>United States</country>
</address>
</mailingLabel>
<referenceNumbers/>
<personIndicators>
<country/>
<nationality/>
<marketingCorrespondence>N</marketingCorrespondence>
</personIndicators>
</personRecord>
</PersonData>
</payload>
使用 JSON() 函数自动转换为 JSON 后
{
"PersonMessageService": {
"@version": "1.5.3",
"response": {
"@timestamp": "2020-03-31T08:48:42.273557+01:00",
"status": "SUCCESS",
"description": null,
"receipt": "A227C1E61EFA2B05E8530100007F6E90"
},
"payload": {
"PersonData": {
"MessageMeta": {
"messageId": "123456",
"MessageChecksum": "c7875a0fd6869bb1234c82bd00712345"
},
"personRecord": {
"@SystemKey": "123456789",
"@timestamp": "2020-01-31T08:48:35",
"GUID": "9889898",
"idNumber": "3578951",
"firstName": "Joe",
"surname": "Bloggs",
"title": "Mr",
"gender": "M",
"dateOfBirth": "1980-01-01",
"homeAddress": {
"@addressObjectId": "10001",
"@timestamp": "2018-11-12T14:58:01",
"address": {
"addressLine1": "123 Fake St",
"country": "United States"
},
"email": "Joe@bloggs.com",
"mobile": "5558878558"
},
"termAddress": {
"@addressObjectId": "10002",
"@timestamp": "2018-11-12T15:07:01",
"address": null,
"email": "joebloggs@hotmail.com"
},
"workAddress": {
"@addressObjectId": "10003",
"@timestamp": "2018-11-12T15:07:01",
"address": null
},
"mailingLabel": {
"@addressObjectId": "10004",
"@timestamp": "2018-11-12T14:58:01",
"address": {
"addressLine1": "58 Fake Bvd",
"addressLine2": "Fake County",
"country": "United States"
}
},
"referenceNumbers": null,
"personIndicators": {
"country": null,
"nationality": null,
"marketingCorrespondence": "N"
}
}
}
}
}
}
【问题讨论】:
标签: json xml azure-logic-apps