Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法分析Azure数据工厂ADF中的JSON列表_Json_Azure Data Factory - Fatal编程技术网

无法分析Azure数据工厂ADF中的JSON列表

无法分析Azure数据工厂ADF中的JSON列表,json,azure-data-factory,Json,Azure Data Factory,在我的datafactory管道中,我有一个web活动,它给出了下面的JSON响应。在下一个存储过程活动中,我无法解析输出参数。我尝试了几种方法 我在web活动中设置了内容类型application/json 示例JSON: Output { "Response": "[{\"Message\":\"Number of barcode(s) found:1\",\"Status\":\"Success\",\"CCS Office\":[{\"Name\":\"Woodstock\",\

在我的datafactory管道中,我有一个web活动,它给出了下面的JSON响应。在下一个存储过程活动中,我无法解析输出参数。我尝试了几种方法

我在web活动中设置了内容类型
application/json

示例JSON:

Output
{
    "Response": "[{\"Message\":\"Number of barcode(s) found:1\",\"Status\":\"Success\",\"CCS Office\":[{\"Name\":\"Woodstock\",\"CCS Description\":null,\"BranchType\":\"Sub CFS Office\",\"Status\":\"Active\",\"Circle\":\"NJ\"}]}]"
}
对于存储过程活动中的参数:

@json(first(activity('Web1').output.Response))
输出-System.Collections.Generic.List`1[System.Object]

@json(activity('Web1').output.Response[0])
输出-无法计算,因为无法选择属性“0”。“字符串”类型的值不支持属性选择

@json(activity('Web1').output.Response.Message)
输出-无法计算,因为无法选择属性“Message”。“String”类型的值不支持属性选择。

以下是我所做的:
@json(activity('Web1').output.Response.Message)
我创建了一个新管道,并使用整个“输出”创建了一个“object”类型的参数:

{     "Response": "[{\"Message\":\"Number of barcode(s) found:1\",\"Status\":\"Success\",\"CCS Office\":[{\"Name\":\"Woodstock\",\"CCS Description\":null,\"BranchType\":\"Sub CFS Office\",\"Status\":\"Active\",\"Circle\":\"NJ\"}]}]" }
我创建了一个变量和setVariable活动。变量的类型为字符串。我使用的动态表达式是:

@{json(pipeline().parameters.output.response)[0]}
让我详细解释一下。{大括号}是必需的,因为变量的类型是string。你可能不想要/不需要它们

json(....)
是必需的,因为“response”值的数据类型保留为字符串。它是否是字符串是正确的行为是一个不同的讨论。通过将字符串转换为json,我现在可以完成最后一部分

[0]
现在可以工作了,因为数据工厂将内容视为对象,而不是字符串文本。这种转换似乎也应用于嵌套内容,因为如果没有封装{curly braces}来转换为字符串,我将从我的setVariable活动中得到一个类型错误,因为变量的类型是string

整个管道代码:

{
"name": "pipeline11",
"properties": {
    "activities": [
        {
            "name": "Set Variable1",
            "type": "SetVariable",
            "dependsOn": [],
            "userProperties": [],
            "typeProperties": {
                "variableName": "thing",
                "value": {
                    "value": "@{json(pipeline().parameters.output.response)[0]}",
                    "type": "Expression"
                }
            }
        }
    ],
    "parameters": {
        "output": {
            "type": "object",
            "defaultValue": {
                "Response": "[{\"Message\":\"Number of barcode(s) found:1\",\"Status\":\"Success\",\"CCS Office\":[{\"Name\":\"Woodstock\",\"CCS Description\":null,\"BranchType\":\"Sub CFS Office\",\"Status\":\"Active\",\"Circle\":\"NJ\"}]}]"
            }
        }
    },
    "variables": {
        "thing": {
            "type": "String"
        }
    },
    "annotations": []
}

}

你好。您是否尝试过
.output.value[0]。消息
.output.value[0]。响应。消息
.output.value[0]。响应
?我们正在使用这种格式,它在我们的管道中工作。@Praetorian1995我累了,但不工作。错误-activity('Web1')。输出。值[0]。无法计算消息“”,因为属性'value'不存在,可用属性为'Response''活动('Web1')。输出。值[0]。无法计算Response。消息“”,因为属性'value'不存在,可用属性为'Response',感谢您的详细解释。这真的很有帮助。谢谢你的反馈:)