Json 函数应用程序在VisualStudio中运行良好,但在发布后,当我从逻辑应用程序调用函数时,它会抛出错误

Json 函数应用程序在VisualStudio中运行良好,但在发布后,当我从逻辑应用程序调用函数时,它会抛出错误,json,azure-function-app,Json,Azure Function App,我的场景:将JSON数据传递给function app以执行一些业务功能,如将输入JSON转换为正确的格式,为此,我使用了foreach循环并创建了JSON字符串 abopve场景在本地VS2017中的工作与预期一样,但在发布后以及从逻辑应用程序调用时,它抛出了错误 为了手动检查,我将整个代码复制到function app(Azure portal)中,并在调用function app时在那里进行检查,它显示了一些与我的JSON相关的错误 访问的JObject值的键值无效:0。应为对象属性名称。

我的场景:将JSON数据传递给function app以执行一些业务功能,如将输入JSON转换为正确的格式,为此,我使用了foreach循环并创建了JSON字符串

abopve场景在本地VS2017中的工作与预期一样,但在发布后以及从逻辑应用程序调用时,它抛出了错误

为了手动检查,我将整个代码复制到function app(Azure portal)中,并在调用function app时在那里进行检查,它显示了一些与我的JSON相关的错误

  • 访问的JObject值的键值无效:0。应为对象属性名称。位于
    数据[0]。列数。计数
  • 然后,我在另一个
    foreach
    之上添加了另一个foreach,并尝试将count作为
    totalData[“columns”]。count

  • 无法访问
    Newtonsoft.Json.Linq.JProperty
    上的子值。(当我放置
    数据[0]时。columns.Count
    totalData[“columns”]。Count
  • 你能帮我看看这个函数应用程序如何能给出与VS2017输出相同的输出吗。或者在函数应用程序中使用json


    因为你说你在门户中得到了错误,你把代码发布到了你的本地功能上。因此,我编写了一个简单的代码来从请求中读取json数据。您没有提到您的json模式,因此下面是我的测试json数据和
    CSX
    代码

    [
        {"columns":{
        "count":1
    },
    "rows":[1,2]},
    {"columns":{
        "count":2
    },
    "rows":[3,4]}]
    
    函数。csx:

    using System.Net;
    
    public static async Task Run(HttpRequestMessage req, TraceWriter log)
    {
        log.Info("C# HTTP trigger function processed a request.");
    
        // Get request body
            dynamic data = await req.Content.ReadAsAsync<object>();
    
        int count = data[1].columns.count;
        int row = data[1].rows[0];
    
        log.Info("colums: "+count.ToString()+" row:"+row);
    }
    
    使用System.Net;
    公共静态异步任务运行(HttpRequestMessage请求、TraceWriter日志)
    {
    Info(“C#HTTP触发器函数处理了一个请求。”);
    //获取请求主体
    动态数据=wait req.Content.ReadAsAsync();
    int count=数据[1]。columns.count;
    int row=数据[1]。行[0];
    log.Info(“列:+count.ToString()+”行:+row);
    }
    
    结果如下:


    如果此json数据不是您想要的,或者您还有其他问题,请随时告诉我或提供更多详细信息。

    您可以更新代码而不是图片吗?这是通过检查我从logic发送的json对象结构解决的apps@SAI奎师那,你已经解决了你的问题,你可以发布你的解决方案并接受它作为帮助他人的答案。