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" />

应用程序日志中的输出如下所示: