在逻辑应用程序中动态访问嵌套的 json 属性

问题描述 投票:0回答:1

我正在尝试动态访问 json 体内的嵌套属性。 我有一个从 http get 请求到共享点的 json。 身体是这样的:

{
    "odata.nextLink": "somelink",
    "value": [{
            "ColumnName": {
                "Id": "int_id",
                "Title": "sometitle"
            }
        },
        {
            "ColumnName": {
                "Id": "int_id2",
                "Title": "sometitle2"
            }
        }
    ]
}

列名称是根据管道和配置表动态确定的,我使用发布请求 这是 post 请求接收的结构:

{
    "properties": {
        "ColumnName": {
            "type": "string"
        }
    },
    "type": "object"
}

我构建了一个until循环,它使用一个从0开始并递增的迭代器i循环遍历value属性内的所有主体,直到i等于value属性内的主体数量减1。

我只需要提取 id 和标题,所以我在 for 循环中引入了一个解析 json,我想在其中获取正文,如下所示:

body('Send_an_HTTP_request_to_SharePoint')?['value']?[variables('i')]?['variables('ColumName')']

如果我对列名进行硬编码,我不会收到任何错误,并且逻辑应用程序工作正常,但是一旦我更改它以从变量中获取列名,我就会收到语法错误,并且我无法完全弄清楚。

json nested syntax-error azure-logic-apps
1个回答
0
投票

我不确定我完全理解并且这未经测试,但你的语法有一个明显的错误。

改变这个...

body('Send_an_HTTP_request_to_SharePoint')?['value']?[variables('i')]?['variables('ColumName')']

...对此...

body('Send_an_HTTP_request_to_SharePoint')?['value']?[variables('i')]?[variables('ColumName')]

...即删除表达式最后部分中的单引号。

© www.soinside.com 2019 - 2024. All rights reserved.