当前位置:  开发笔记 > 后端 > 正文

如何使用ruby的ActiveResource来使用JSON格式?

如何解决《如何使用ruby的ActiveResource来使用JSON格式?》经验,为你挑选了1个好方法。

ActiveRecord引入了对其默认JSON输出格式的更改.它来自

{ "user": { some_junk } }

{ some_junk }

ActiveResource显然已经跟随他们的领先,期望消耗JSON

{ some_junk }

我正在拼命地使用一个发出的RESTful Web服务

{ "user": { some_junk } }

有没有办法告诉我的ActiveResource :: Base类这样做?这是我的代码.

class User < ActiveResource::Base
    self.site = "http://example.com/"
    self.format = :json
end

更新:我现在放弃ActiveResource,除非有人知道答案; 与此同时,我能够实现我想要的GET

require 'httparty' # sudo gem install httparty
result = HTTParty.get('http://foo.com/bar.json', headers => { "Foo" => "Bar"})
# result is a hash created from the JSON -- sweet!

小智.. 10

是的,ActiveResource目前在数据格式方面有点不灵活.

原则上,您可以JsonWithRootFormat根据模块自己编写自定义格式模块(例如),ActiveResource::Formats::JsonFormat然后将其指定为模型中的格式:

self.format = :json_with_root

但是,ActiveResource::Base与格式无关 - 它目前正在检查您是否正在使用XmlFormat,并且只在您通过根节点时才通过.

所以你可以通过制作自己的格式模块猴子修补来获得你想要的东西ActiveResource::Base,但这并不理想.不过,我肯定Base会欢迎一个能让格式无关的补丁.



1> 小智..:

是的,ActiveResource目前在数据格式方面有点不灵活.

原则上,您可以JsonWithRootFormat根据模块自己编写自定义格式模块(例如),ActiveResource::Formats::JsonFormat然后将其指定为模型中的格式:

self.format = :json_with_root

但是,ActiveResource::Base与格式无关 - 它目前正在检查您是否正在使用XmlFormat,并且只在您通过根节点时才通过.

所以你可以通过制作自己的格式模块猴子修补来获得你想要的东西ActiveResource::Base,但这并不理想.不过,我肯定Base会欢迎一个能让格式无关的补丁.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有