我想从 API 获取 xml 文件(我无法从这个 API 获取 Json 格式)。此后,我想将它们转换为 JSON,然后使用逻辑应用程序保存到 oneDrive。(我打算从 Azure SQL 服务器中的这些 json 文件创建表)
到目前为止,我的方法是使用 HTTP GET 响应触发逻辑应用程序。
使用 json(xml(triggerBody())) 将上述步骤 1 中收到的 xml 文件转换为 json 并将其保存到 oneDrive。
应用程序的逻辑步骤是: 1) 从 API 获取 HTTP 响应 2) 使用函数 json(xml(triggerBody())) 将响应保存为 oneDrive 上的 json
这是来自 API 的 xml 文件的副本:
<?xml version="1.0" encoding="ISO-8859-1"?>
-<n1:VareResult xmlns:n1="http://ABCC.Schemas.Vare/8.0" xmlns:n7="http://ABCC.Schemas.Common/8.0">
-<n1:Header>
-<n1:EksportType>
<n7:EksportId>0</n7:EksportId>
<n7:Eksportmetode/>
<n7:StartIndex>0</n7:StartIndex>
<n7:BatchSize>2000</n7:BatchSize>
<n7:TotalCount>1</n7:TotalCount>
<n7:VersionNr/>
</n1:EksportType>
-<n1:Result> <n7:ResultValue>Success</n7:ResultValue> </n1:Result>
</n1:Header>
-<n1:VareListe>
-<n1:Vare>
-<n1:Status>
<n7:Created>2004-06-27T15:30:57.549</n7:Created>
<n7:Updated>2019-11-20T09:34:03.008</n7:Updated>
</n1:Status>
<n1:ABCCNr>10203</n1:ABCCNr>
........
........
这是它对应的json文件:
{"?xml":{"@version":"1.0","@encoding":"iso-8859-1"},"n1:VareResult":
{"@xmlns:n7":"http://ABCC.Schemas.Common/8.0","@xmlns:n1":"http://ABCC.Schemas.Vare/8.0","n1:Header":
{"n1:EksportType":
{"n7:EksportId":"0","n7:Eksportmetode":null,"n7:StartIndex":"0","n7:BatchSize":"2000","n7:TotalCount":
"1","n7:VersionNr":null},"n1:Result":{"n7:ResultValue":"Success"}},"n1:VareListe":{"n1:Vare":
{"n1:Status":{"n7:Created":"2004-06-27T15:30:57.549","n7:Updated":"2019-11-20T09:34:03.008"},
"n1:ABCCNr":"10203",
........
.......
如您所见,json 文件也具有命名空间前缀。我正在尝试在 sql server 中导航路径。这是示例:下图显示了命令的结果:select * FROM OPENJSON(@jsonObject)
我想访问键 n1:VareResult 的值。
我试图像这样导航路径:select * FROM OPENJSON (@jsonObject,'$.n1:VareResult' )
但我收到错误消息:“JSON 路径格式不正确。在位置 4 找到了意外字符 ':'。”
是否有一个转义序列可以让我在路径中导航,即使它有这些“禁止字符”?如果没有,我是否可以在上面的步骤 2 中控制从 xml 到 json 的转换,以便为每个元素省略命名空间前缀?