将JSON转换为ruby中的字符串或散列

时间:2013-07-09 09:32:03

标签: ruby json string hash

我试过了:

require 'net/http'
require 'json'
require 'pp'
require 'uri'

url = "http://xyz.com"
resp = Net::HTTP.get_response(URI.parse(url))
buffer = resp.body
result = JSON.parse(buffer)
#result.to_hash
    #pp result
puts result  

输出为:

{"id"=>"ABC", "account_id"=>"123", "first_name"=> "PEUS" }

采用JSON格式,但我只需将id的值打印为ABC

1 个答案:

答案 0 :(得分:11)

JSON中的传入字符串如下所示:

{"id":"ABC","account_id":"123","first_name":"PEUS"}

使用JSON解析后,它就是哈希:

{"id"=>"ABC", "account_id"=>"123", "first_name"=> "PEUS" }

所以,我会用:

hash = {"id"=>"ABC", "account_id"=>"123", "first_name"=> "PEUS" }
hash['id'] # => "ABC"

这是一个更紧凑的版本:

require 'json'

json = '{"id":"ABC","account_id":"123","first_name":"PEUS"}'
hash = JSON[json]
hash['id'] # => "ABC"

注意我正在使用JSON[json]。 JSON []类方法非常智能,可以感知传入的参数是什么。如果它是一个字符串,它将解析字符串。如果它是一个数组或哈希,它将序列化它。我发现这很方便,因为它允许我编写JSON[...]而不必记住我是在解析还是使用to_json或其他东西。使用它是the first virtue of programmers的一个例子。