我试过了:
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
。
答案 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的一个例子。