将JSON转换为ruby中的字符串或哈希值

use*_*245 2 ruby string hash json

我试过了:

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  
Run Code Online (Sandbox Code Playgroud)

得到的输出为:

{"id"=>"ABC", "account_id"=>"123", "first_name"=> "PEUS" }
Run Code Online (Sandbox Code Playgroud)

以JSON格式,但我只需要id打印的值为ABC.

the*_*Man 11

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

{"id":"ABC","account_id":"123","first_name":"PEUS"}
Run Code Online (Sandbox Code Playgroud)

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

{"id"=>"ABC", "account_id"=>"123", "first_name"=> "PEUS" }
Run Code Online (Sandbox Code Playgroud)

所以,我会用:

hash = {"id"=>"ABC", "account_id"=>"123", "first_name"=> "PEUS" }
hash['id'] # => "ABC"
Run Code Online (Sandbox Code Playgroud)

这是一个更紧凑的版本:

require 'json'

json = '{"id":"ABC","account_id":"123","first_name":"PEUS"}'
hash = JSON[json]
hash['id'] # => "ABC"
Run Code Online (Sandbox Code Playgroud)

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