Azure Logic应用程序将XML转换为JSON,但将对象的一个项数组视为一个对象,在解析JSON时如何处理



我一直在Azure Logic应用程序中开发一个工作流,它接收一个XML文件,然后我使用json(xml(variables('xmldocument')))将其转换为JSON,然后我将其放入ParseJSON函数中,我将转换后的JSON作为示例有效负载提供给该函数以生成模式。问题是,我在文件中有一些时间序列,几乎所有时间序列都包含许多对象。但最终,只有一个时间序列只包含一个对象。它造成了问题,因为时间序列被视为一个对象数组,但最后一个时间序列只包含一个对象,没有数组,然后在解析JSON时总是会出现错误。以下是文件示例:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns="blank">
<mRID>9</mRID>
<schedule_Time_Period.timeInterval>
<start>2020-03-20T23:00Z</start>
<end>2020-03-21T23:00Z</end>
</schedule_Time_Period.timeInterval>
<TimeSeries>
<mRID>c</mRID>
<businessType>B</businessType>
<Period>
<timeInterval>
<start>2020-03-20T23:00Z</start>
<end>2020-03-21T23:00Z</end>
</timeInterval>
<resolution>P</resolution>
<Point>
<position>1</position>
<quantity>2</quantity>
</Point>
<Point>
<position>2</position>
<quantity>2</quantity>
</Point>
</Period>
</TimeSeries>
<TimeSeries>
<mRID>56</mRID>
<version>1</version>
<businessType>A</businessType>
<Period>
<timeInterval>
<start>2020-03-20T23:00Z</start>
<end>2020-03-21T23:00Z</end>
</timeInterval>
<resolution>P1D</resolution>
<Point>
<position>1</position>
<quantity>1.0652</quantity>
</Point>
</Period>
</TimeSeries>
</Document>

你知道怎么处理它吗?谢谢你帮我!

找到了一个非常简单的解决方案:在指定模式中时间序列的类型时,我只使用type: ["array","object"],

在这种情况下,我认为这是由设计引起的问题。当<TimeSeries>中只有一个对象时,它将被视为对象,而不是数组。为了解决问题,我们可以在其中添加另一个特定记录。然后它将被视为数组,我们可以稍后执行一些操作来删除此特定记录。否则,我认为xml((方法无法自动匹配我们的需求。

这是我过去提供相同解决方案的另一篇帖子,供您参考。

相关内容

  • 没有找到相关文章

最新更新