2

私が試してみました:

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

4

1 に答える 1

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ます。それを使用することは、プログラマーの第一の美徳の例です。

于 2013-07-09T09:34:42.967 に答える