【问题标题】:Azure Logic Apps - invalid json parameter errorAzure 逻辑应用 - 无效的 json 参数错误
【发布时间】:2018-08-29 08:49:44
【问题描述】:

更新:问题出在文件编码上。查看答案。

我有一个来自 blob 存储的 15.7 MB 的 json 有效负载。当我将输出传递给 ParseJson 操作时,我使用了 json() 转换器函数,但出现此错误:

无法在操作“Parse_JSON”中处理模板语言表达式 在“1”行和“2792”列输入:“模板语言函数 “json”参数无效。

然后我使用相同的 json 文件并将其剥离到 1 KB 并使用相同的 Logic App 进行测试,它可以正常工作。那么json()有大小限制吗?

【问题讨论】:

  • 抱歉,您如何将 15MB 的文件剥离为仅 1KB?
  • 只是在文本编辑器中手动,然后我将其上传到 blob 存储。
  • 嗯,具体来说,15MB 到 1K 不仅仅是“编辑”。为什么一开始是 15MB?剥离这么多,您可能消除了实际问题。
  • 该文件是用 Newtonsoft.JSON 序列化的,所以我很确定有效负载本身是有效的 JSON。将其剥离到 1K 只是为了测试文件大小是否是问题所在,这似乎是可能的原因,但无法确定。
  • @JoeyEng 你怎么能手动剥离文件并减小大小?那就是删除实际数据。您可以使用 jsonlint.com 轻松验证 json

标签: json azure azure-logic-apps


【解决方案1】:

问题在于流是在文本开头添加了字节顺序标记 (BOM) 写入的,因此它未被识别为有效的 JSON。 StreamWriter 用于使用 UTF8 编码写入流。修复方法是不在构造函数中指定编码,默认为没有 BOM 的 UTF8 实例:

https://docs.microsoft.com/en-us/dotnet/api/system.io.streamwriter?view=netframework-4.7.2#remarks

【讨论】:

    猜你喜欢
    • 2021-04-25
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 2022-10-14
    相关资源
    最近更新 更多