jsonOpen
Version 24.2.9039
jsonOpen
Version 24.2.9039
为来自 URI 或静态文本的 JSON 数据创建可读句柄。 当需要读取静态 JSON 数据、公共 URI 中的 JSON 数据或其他运算器输出中的 JSON 数据时,此运算器非常有用。
必需的参数
- 无
可选的参数
- uri:JSON 文件 URI(例如
http://mydomain.com/resources/somedata.json
或/tmp/myfile.json
)。 - text:JSON 文本。 这可以是在 ArcScript 属性上设置的静态 JSON,也可以是脚本中先前运算器的输出(例如 http 运算器之一的
[http:content]
输出属性。)请参阅下面的示例。
输出属性
- handle:对 JSON 数据的可读句柄引用。 该句柄可供后续运算器使用(参见下面的示例)。
- warning#:可读JSON句柄的警告数组。
示例
下面是一个使用 jsonOpen 为某些静态 JSON 文本创建句柄,然后将该句柄传递给另一个运算器的示例(在本例中,第二个运算器是 jsonDOMGet):
<!-- 设置静态 JSON 文本 -->
<arc:set attr="json.text" value='{"hello": "world","settings": {"foo": "bar"}}' />
<arc:call op="jsonOpen" in="json" out="output" >
<!-- 将 json 句柄设置为传递到第二个运算器的新项目的属性 -->
<arc:set attr="json2.handle" value="[output.handle]" />
<arc:set attr="json2.map:value1" value="/json/settings/foo" />
<arc:call op="jsonDOMGet" in="json2" out="output2" >
<!-- 可以在此处为使用句柄的运算器执行附加脚本 -->
<!-- 此示例将 foo 设置的值从 json 文本记录到应用程序日志中,即“bar”-->
<arc:set attr="_log.info" value="[output2.value1]" />
</arc:call>
<arc:finally>
<!-- 关闭json句柄-->
<arc:call op="jsonClose" in="json2" />
</arc:finally>
</arc:call>
注意:使用 jsonOpen 时,请确保在脚本末尾使用相应的 jsonClose 运算器来关闭句柄,以避免通过打开的句柄泄漏内存。