azure-eventhub - Azure 流分析事件中心输出 - 收到无效对象
问题描述
使用 ASA 作业,输入作为 IoT 中心,事件中心作为输出,一个流单元和每秒 36 条消息。
ASA 将多个对象作为单个字符串发送到事件中心。
例如 - 当我通过上传示例 IoT Hub 输入 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。String 不是数组或逗号分隔的对象。
解决方案
如果您将输出配置为行分隔,则此输出是预期的。要反序列化,您可以逐行读取并反序列化每一行或让 JObjects 的反序列化序列。
如果您更喜欢 json 数组,请选择数组。此页面有更多详细信息。请注意,如果作业在关闭文件之前重新启动,则文件可能缺少关闭“]”
推荐阅读
- java - MPAndroid Chart,我如何将图表上的值从浮点数格式化为整数,接口被贬低
- php - 错误的排序规则会创建无效的标记 laravel
- sql-server - 如何将 SQL Server 中的数据假脱机到不同工作表中的 Excel 文件
- c# - Unity3D:如何通过鼠标右键拖动使相机围绕一个对象旋转,相机上有一个角度,仅在 x 轴上?
- android - json_extract for in android in flutter 不工作
- docker - Traefik v2 和 Invalid Lets Encrypt 证书
- python - 根据值的数量将 pandas 列拆分为多个单独的列
- python - 仅在 Python 中使用双引号在 print() 语句中打印引号的不同方法
- sql - 使用表类型将表变量传递给存储过程?
- swift - 本地蒸汽项目的预检请求 (OPTIONS) 失败