【问题标题】:Ruby Regex for Json in Chef Recipe [duplicate]厨师食谱中Json的Ruby正则表达式[重复]
【发布时间】:2019-03-03 10:24:12
【问题描述】:

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"

【问题讨论】:

  • 解析JSON并获取值:JSON.parse(s)["result"]
  • FWIW:'{"jsonrpc":"2.0","result":"4b79a399f043fa44c5653bee3ecb346d","id":0}'[/(?<="result":").*?(?=")/] #⇒ "4b79a399f043fa44c5653bee3ecb346d".

标签: json ruby regex chef-infra


【解决方案1】:

您实际上是在处理 JSON,这是一种类似于 XML 或 YAML 的数据格式。
幸运的是,您可以依赖 JSON gem,它是为解析标准 JSON 而开发的。

这里是你如何使用它:

require 'JSON'

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

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

输出是:

“4b79a399f043fa44c5653bee3ecb346d”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多