azure JSONPath筛选不返回数组的语法

irlmq6kh  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(199)

我是JSONPath的新手,我想写一个JSONPath语法,它只在满足特定条件时才检索属性值。我所追求的值不是数组的一部分,但我设法在下面的JSONPath工具中使过滤工作:https://www.site24x7.com/tools/json-path-evaluator.html
给定以下JSON,我只想在column2.attributeId等于B 0时提取column2.dimValue的值:
{“批次ID”:279,“公司标识”:“40”、“期数”:202208,“税码”:“1”、“税务系统”:“",“交易日期”:“2022-08- 05 T00:00:00.000”,“交易编号”:222006089,“交易类型”:“IF”、“年份”:2022,“会计信息”:{“账号”:“4010”,“第1列”:{“属性ID”:“H9”,“尺寸值”:“76”},“第2列”:{“属性ID”:“B 0”,“尺寸值”:“2170103”},“第3列”:{“属性ID”:“"、“尺寸值”:“}”,第4列:{“属性ID”:“BF”,“尺寸值”:“217010330”},“第5列”:{“属性ID”:“10”,“尺寸值”:“3101”},“第6列”:{“属性ID”:“06”,“尺寸值”:“}”,第7列:{“属性ID”:“19”,“尺寸值”:“K”} },“类别”:{“类别1”:“H9”,“类别2”:“B0”、“cat3”:“"、“cat4”:“BF”、“cat5”:“10”、“cat6”:“06”、“cat7”:“19”、“dim1”:“76”、“dim2”:“2170103”,“尺寸3”:“"、“dim4”:“217010330”,“尺寸5”:“3101”、“dim6”:“"、“dim7”:“K”},“金额”:{【金额】:48.24,“金额3”:0.0,“金额4”:0.0,“货币金额”:48.24,“货币代码”:“不合格”,“借方贷方标志”:1 }、《发票联》:{“客户或供应商ID”:“58118”,【描述】:“"、“外部归档引用”:“”、“外部指涉”:“2170103”,“发票编号”:“220238522”,“分类帐类型”:“P”},“附加信息”:{【货号】:0,“订单行号”:0,“订单编号”:0,“序列号”:1、“状态”:“"、“值”:0.0,“值日期”:“2022-08- 05 T00:00:00.000”},“最后更新时间”:{“更新时间”:“2022-09- 05 T10:59:11.633”,“更新人”:“帮助”} }
我使用了以下JSONPath语法:属性ID =='B 0')].维度值
这会产生以下结果:
[“二一七○一零三”]
我在Azure数据工厂Map中使用此结果,但由于结果是数组,因此它似乎不起作用。
有谁能帮我用语法让它只返回实际值吗?这可能吗?
我在Azure数据工厂Map中使用此结果,但由于结果是数组,因此它似乎不起作用。
有谁能帮我用语法让它只返回实际值吗?这可能吗?
谢谢你的帮助。

mzillmmw

mzillmmw1#

我重复了同样的方法,下面是方法。

  • 示例Json文件如下图所示,作为查找活动中的源。x1c 0d1x
  • 如果采取活动来过滤attributeId ='B 0'的column 2的值。表达式如下所示@equals(activity('Lookup1').output.value[0].accountingInformation.column2.attributeId ,'B0')
  • IF活动为真的情况下,将添加设置变量。采用字符串类型的新变量,并使用以下表达式进行设置。@activity('Lookup1').output.value[0].accountingInformation.column2.dimvalue

  • 然后,将复制活动按顺序添加到IF活动旁边。在源虚拟数据集中。在其他列中单击**+新建**

名称:col 1值:@变量('v2')

  • 在Map中,单击导入方案。除在源中添加的附加列外,所有其他列都将被删除。

  • 管道已调试,数据已复制到接收器,没有错误。x1c4d 1x

相关问题