jsonDOMSearch
Version 24.3.9111
jsonDOMSearch
循环输入 JSON 文档中的元素。
必需的参数
- jsonpath: 要循环的指定段的从 1-based 的索引 jsonpath(例如,
<arc:set attr="myinputitem.jsonpath" value="/json/foo/" />
)。
可选的参数
- uri: JSON 文件 URI(例如
http://mydomain.com/resources/somedata.json
、/tmp/myfile.json
或[FilePath]
)。 - text:对 JSON 数据的可读句柄引用。 此句柄由 jsonOpen 操作创建,当输入 JSON 不是文件或原始文本,或者需要执行访问文档的文件数据的多个操作时,此句柄非常有用。
- handle:对 JSON 数据的可读句柄引用。 该句柄由 jsonOpen 运算器创建,仅当目标 JSON 不是输入文件时才需要。 有关详细信息和示例,请参阅 jsonOpen。
输出属性
- jsonpath:输出项相对于输入项上设置的 jsonpath 的从 1 开始的索引 jsonpath。
- name:返回正在循环的指定元素的名称(例如,
[myoutitem.name]
解析为foo
JSON 元素的名称,即foo
)。 - type:返回正在循环的指定元素的数据类型(例如,如果
foo
元素具有字符串值,则[myoutitem.type]
解析为STRING
)。
示例
考虑以下的 JSON 数据作为输入数据:
{
"hello": "world",
"colors": [
{
"color": "yellow",
"example": "banana"
},
{
"color": "red",
"example": "apple"
},
{
"color": "orange",
"example": "orange"
}
]
}
可以使用 jsonDOMSearch 运算器来枚举 colors
数组中的所有对象,如下所示:
<!-- 设置输入uri和jsonpath -->
<arc:set attr="json.uri" value="[FilePath]" />
<arc:set attr="json.jsonpath" value="/json/colors/" />
<!-- 调用运算器,传入 json 项并创建“结果”输出项 -->
<arc:call op="jsonDOMSearch" in="json" >
<!-- 在调用中,可以引用相对于输入“jsonpath”的路径中的元素 -->
<!-- 在此示例中,记录了“colors”数组内每个对象的每种颜色和示例 -->
<arc:set attr="_log.info" value="Color = [jsonpath(color)]" />
<arc:set attr="_log.info" value="Example = [jsonpath(example)]" />
</arc:call>
<!-- 设置输出文件并推送文件 -->
<arc:set attr="output.filepath" value="[FilePath]" />
<arc:push item="output" />
应用程序日志中的输出如下所示: