Azure流分析事件中心输出-接收到无效对象

时间:2018-08-13 11:50:31

标签: azure-eventhub azure-stream-analytics

使用输入为IoT中心和事件中心为输出的ASA作业,并具有一个流式单位和每秒36条消息。

ASA将多个对象作为单个字符串发送到事件中心。

例如-当我通过上载示例IoT中心输入json文件测试ASA作业时,应按预期在单行(输出中每行一个对象)中获取以下对象-“ {” assetbarcode“:” MobileGW153353803144884Asset“,” sensorruleid“:1159, “ groupid”:681}“

但是,当启动ASA作业并启动C#事件中心接收器时,将多个对象作为单个字符串- “ {” assetbarcode“:” MobileGW153353803144884Asset“,” sensorruleid“:1159,” groupid“:681} {“ assetbarcode”:“ MobileGW153353803144884Asset”,“ sensorruleid”:1159,“ groupid”:681} {“ assetbarcode”:“ MobileGW153353803144884Asset”,“ sensorruleid”:1159,“ groupid”:681}“

由于它是无效的json,因此无法反序列化。字符串不是数组或逗号分隔的对象。

推荐的C#接收者-https://github.com/Azure/azure-event-hubs/blob/master/samples/DotNet/Microsoft.Azure.EventHubs/SampleEphReceiver/SimpleEventProcessor.cs

1 个答案:

答案 0 :(得分:1)

如果将输出配置为行分隔,则此输出是预期的。要反序列化,您可以逐行读取并反序列化每行,或让JObjects的反序列化序列。

如果您更喜欢json数组,请选择array。 This page有更多详细信息。请注意,如果作业在关闭文件之前重新启动,则关闭“]”文件可能会丢失文件