如何从 Azure 数据工厂中的 json 对象中提取值
How to extract the value from a json object in Azure Data Factory
我有我的 ADF 管道,设置变量 activity 的最终输出是这样的 {name:test, value:1234}
,
这个变量的输入是
{
"variableName": "test",
"value": "test:1234"
}
设置变量项栏中提供的表达式为@item().ColumnName
。我的 JSon 文件中的 ColumnName 是这样的 "ColumnName":"test:1234"
我如何更改它以便我只得到 1234。我只对这里的价值感兴趣。
看起来您需要用冒号拆分值,您可以使用 Azure 数据工厂 (ADF) expressions and functions:split
函数,它将一个字符串拆分为一个数组,然后last
函数从数组中获取最后一项。这在这种情况下非常有效:
@last(split(variables('varWorking'), ':'))
示例结果:
根据您的情况更改变量名称。您还可以使用 lastIndexOf
之类的字符串方法来定位冒号,并从那里获取字符串的其余部分。示例表达式如下所示:
@substring(variables('varWorking'),add(indexof(variables('varWorking'), ':'),1),4)
它有点复杂,但可能适合您,具体取决于要求。
自从获得 item
以来,您似乎是在迭代器内部使用它,但是,我尝试使用简单的 json
查找值
@last(split(activity('Lookup').output.value[0].ColumnName,':'))
我有我的 ADF 管道,设置变量 activity 的最终输出是这样的 {name:test, value:1234}
,
这个变量的输入是
{
"variableName": "test",
"value": "test:1234"
}
设置变量项栏中提供的表达式为@item().ColumnName
。我的 JSon 文件中的 ColumnName 是这样的 "ColumnName":"test:1234"
我如何更改它以便我只得到 1234。我只对这里的价值感兴趣。
看起来您需要用冒号拆分值,您可以使用 Azure 数据工厂 (ADF) expressions and functions:split
函数,它将一个字符串拆分为一个数组,然后last
函数从数组中获取最后一项。这在这种情况下非常有效:
@last(split(variables('varWorking'), ':'))
示例结果:
根据您的情况更改变量名称。您还可以使用 lastIndexOf
之类的字符串方法来定位冒号,并从那里获取字符串的其余部分。示例表达式如下所示:
@substring(variables('varWorking'),add(indexof(variables('varWorking'), ':'),1),4)
它有点复杂,但可能适合您,具体取决于要求。
自从获得 item
以来,您似乎是在迭代器内部使用它,但是,我尝试使用简单的 json
查找值
@last(split(activity('Lookup').output.value[0].ColumnName,':'))