在Ruby中自动将JSON对象映射到实例变量

在Ruby中自动将JSON对象映射到实例变量,第1张

概述我希望能够自动将 JSON对象解析为实例变量.例如,使用此JSON. require 'httparty'json = HTTParty.get('http://api.dribbble.com/players/simplebits') #=> {"shots_count":150,"twitter_screen_name":"simplebits","avatar_url":"http:// 我希望能够自动将 JSON对象解析为实例变量.例如,使用此JsON.

require 'httparty'Json = httparty.get('http://API.dribbble.com/players/simplebits') #=> {"shots_count":150,"twitter_screen_name":"simplebits","avatar_url":"http://dribbble.com/system/users/1/avatars/thumb/dancederholm-peek.jpg?1261060245","name":"Dan Cederholm","created_at":"2009/07/07 21:51:22 -0400","location":"Salem,MA","following_count":391,"url":"http://dribbble.com/players/simplebits","draftees_count":104,"ID":1,"drafted_by_player_ID":null,"followers_count":2214}

我希望能够这样做:

Json.shots_count

并输出:

150

我怎么可能这样做?

解决方法 你绝对应该使用类似Json [“shots_counts”]的东西,但如果你真的需要客观化的哈希,你可以为此创建一个新类:

class ObjectifIEdHash    def initialize hash        @data = hash.inject({}) do |data,(key,value)|              value = ObjectifIEdHash.new value if value.kind_of? Hash            data[key.to_s] = value            data        end    end    def method_missing key        if @data.key? key.to_s            @data[key.to_s]        else            nil        end    endend

之后,使用它:

oJson = ObjectifIEdHash.new(httparty.get('http://API.dribbble.com/players/simplebits'))oJson.shots_counts # => 150
总结

以上是内存溢出为你收集整理的在Ruby中自动将JSON对象映射到实例变量全部内容,希望文章能够帮你解决在Ruby中自动将JSON对象映射到实例变量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存