Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, Pessoal!
Estou começando agora no Ruby e gostaria de saber como faço para percorrer o JSON mostrado abaixo:
Exemplo Retorno de um mongoDB:
>
{
"check_name" : "check-s3-bucket",
"param_1" : [
{
"name" : "bucket-name",
"value" : "bourbon-backup-mysql"
},
{
"name" : "bucket-name",
"value" : "bourbon-backup-mysql-prod"
}
],
"type" : "standard",
"subscribers" : "aws",
"command" : "/etc/sensu/plugins/aws/s3/check-s3-bucket.rb",
"interval" : "7200",
"timeout" : "7200",
"handler" : "slack"
}
Deu certo sim, muito obrigado!
Dúvida:
Consigo usar array com índice ao invés de associativo?
Raffael,
Fiquei em dúvida quanto a sua questão, apesar de estar clara. Você quer deixar de usar um array associativo para usar um array com index?
-
SIM: Consegue, só precisaria entender como/porquê pretende fazer isso. Como não sei o seu nível de conhecimento quanto ao ruby, vou deixar alguns links que talvez te ajude nessa questão também.
-
NÃO: Poderia especificar melhor a sua questão?
Obs.: Se sua questão foi resolvida, vá até a resposta que solucionou e a selecione como solução para o seu tópico. Todos que tiverem a mesma dúvida que você, podem consultar esse tópico de acordo com a resposta escolhida como solução. Isso ajuda a todos da comunidade que possuem dúvidas semelhantes.
Abraços!
Raffael,
Primeiro de tudo é: Seu arquivo .rb (ruby) vai precisar dar um require no jSON... Portanto essa será uma função bem simples de inicio.
require 'rubygems'
require 'json'
gem install json
Agora vamos dar um parse no seu arquivo. O ruby precisa entender o que será lido, então vamos escrever da seguinte maneira:
arquivo = File.read('seu_arquivo_json.json')
arquivo é uma variável qualquer, você pode mudar o nome quando quiser. Agora que temos uma variável com o arquivo jSON, vamos dar um parse para que o ruby consiga interpreta-lo.
parse_arquivo = JSON.parse(arquivo)
Bem, até aqui temos duas variáveis: arquivo e parse_arquivo. Seu arquivo .rb até aqui deve estar da seguinte maneira:
require 'rubygems'
require 'json'
arquivo = File.read('seu_arquivo_json.json')
parse_arquivo = JSON.parse(arquivo)
Removi o => true, pois ele já não é mais necessário. Aquilo foi só para fazer uma verificação se já tinha instalado o gem JSON no seu PC.
Agora que ele deu parse no seu arquivo JSON, muito provavelmente o retorno deve ser semelhante a esse abaixo:
parse_arquivo['check_name']
=> "check-s3-bucket"
parse_arquivo['param_1']
parse_arquivo['type']
=> "standard"
parse_arquivo['subscribers']
=> "aws"
parse_arquivo['command']
=> "/etc/sensu/plugins/aws/s3/check-s3-bucket.rb"
parse_arquivo['interval']
=> "7200"
parse_arquivo['timeout']
=> "7200"
parse_arquivo['handler']
=> "slack"
Não sei se o output está correto, pois fiz a mão mesmo hahahahaha. Bem, faça o teste e retorne se resolvi sua dúvida.
Abraços!