我正在尝试动态访问 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')']
如果我对列名进行硬编码,我不会收到任何错误,并且逻辑应用程序工作正常,但是一旦我更改它以从变量中获取列名,我就会收到语法错误,并且我无法完全弄清楚。
我不确定我完全理解并且这未经测试,但你的语法有一个明显的错误。
改变这个...
body('Send_an_HTTP_request_to_SharePoint')?['value']?[variables('i')]?['variables('ColumName')']
...对此...
body('Send_an_HTTP_request_to_SharePoint')?['value']?[variables('i')]?[variables('ColumName')]
...即删除表达式最后部分中的单引号。