Ruby Regex for Chef食谱中的Json

时间:2018-09-27 13:24:17

标签: json ruby regex chef

通过zabbix-api登录,我得到以下输出:

{"jsonrpc":"2.0","result":"4b79a399f043fa44c5653bee3ecb346d","id":0} 

我正在尝试使用上面的代码在ruby中进行解析:

command_out = shell_out(command).stdout.to_s
node.default['zabbix_server']['zabbix_auth'] = command_out.lines.grep(/"(result)":"((\\\"|[^"])*)"/)

我怎么只能抓住"4b79a399f043fa44c5653bee3ecb346d"

1 个答案:

答案 0 :(得分:0)

您实际上正在处理JSON,它是XML或YAML之类的数据格式。
幸运的是,您可以依赖开发用于解析标准JSON的JSON gem。

这里是使用方式:

require 'JSON'

my_json = '{"jsonrpc":"2.0","result":"4b79a399f043fa44c5653bee3ecb346d","id":0}'

a = JSON.parse(my_json)
p a['result']

,输出为:

  

“ 4b79a399f043fa44c5653bee3ecb346d”