- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
Rails 2.3.6 开始使用快速的新 json 库,yajl-ruby , "if available" .
在 yajl-ruby 自述文件的“JSON gem Compatibility API”部分中,它概述了一种方法,只需删除 yajl-ruby 包含并让应用程序的其余部分无缝地拾取它。
所以,理想情况下,我想
实现此目标的最简单方法是什么?我的猜测:
config.gem 'yajl-ruby', :lib => 'yajl/json_gem'
作为 environment.rb 中的第一个 gem。这样做不会导致任何错误,但我不确定如何知道 Rails 是否将其拾取供自己使用。
谢谢!约翰
最佳答案
我建议使用 yajl-ruby
的 API 而不是 JSON gem 兼容 API 主要是因为 JSON gem 的 to_json
方法与 ActiveSupport
冲突并且在让他们一起工作时遇到了长期存在的问题。
如果你只是做 config.gem 'yajl-ruby', :lib => 'yajl'
相反,您需要使用 Yajl::Parser
和 Yajl::Encoder
直接解析/编码对象。这样做的好处是您可以确定不会与方法覆盖发生任何冲突,因此可以保证您的 JSON 编码/解析代码将按预期工作。缺点是如果您使用任何使用 JSON gem 的 gem,它们将继续这样做,但您自己的代码将使用 yajl-ruby。
如果你愿意,你可以使用你的 config.gem 行,然后在初始化器中 require 'yajl'
所以你会加载两个 API。 yajl/json_gem
include 将覆盖任何使用 JSON gem 的 yajl
- 为了确保这会覆盖那些方法,请尝试确保 require 'yajl/json_gem'
最后发生。
如果您使用的是 Rails 3,则可以将其添加到初始化程序中:
ActionController::Renderers.add :json do |json, options|
json = Yajl.dump(json) unless json.respond_to?(:to_str)
json = "#{options[:callback]}(#{json})" unless options[:callback].blank?
self.content_type ||= Mime::JSON
self.response_body = json
end
确保render :json => ...
来电使用 yajl-ruby
抱歉,如果这不能真正回答您的问题,但我想至少给出使用 yajl-ruby
的建议。直接的 API :)
关于ruby-on-rails - 在我的 Rails 项目中使用 yajl-ruby 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3073711/
我试图让 Jekyll 在 Windows 上工作,但没有成功。这是我第一次安装/使用 Ruby。 Ruby 版本:ruby 2.0.0p0 (2013-02-24) [i386-mingw32] (
有人有 YAJL Json 解析框架来与 iPhone 配合使用吗?如果您有的话,您可以发布有关如何链接到它的简单说明。 我想将它与 MGTwitterEngine 框架一起使用。 目前我收到这些错误
菜鸟,我正在尝试安装 octopress,但是当我运行 rbenv exec bundle install 时出现此错误。 Gem::Ext::BuildError: ERROR: Failed to
摘要。基于一些benchmarks ,我选择了yajl-objc用于我的 iPhone JSON 解析器。我正在使用任意自定义类(一个 NSNumber 和两个 NSString 属性)对其进行测试。
如何删除和更新 yajl C 库中的对象? 我在任何地方都找不到这个解决方案 最佳答案 您需要手动更新库文件。对此没有特定的方法或技术。 关于c - 如何删除和更新 yajl C 库中的对象?,我们在
我已经使用 yajl 玩了几天,非常喜欢树节点模型。解析完成后,您将获得 json 文件的结构,然后可以浏览它。就像这里的例子: http://lloyd.github.io/yajl/yajl-2.
当我运行时: sudo gem install yajl-ruby 我看到错误: Building native extensions. This could take a while... ERR
我已经在 ubuntu 10.04 安装上安装了 yajl、libyajl-dev 和 yajl-ruby gem。 我将 gem 添加到 2.3.8 ruby on rails 安装中,因为 2
Twitter 流 API 返回 JSON 块,但我的 YAJL 解析器在第一个之后停止。我想这是因为每个 JSON 块都是独立的(即:不在全局数组中),所以 YAJL 无法知道它没有完成。 我该如何
在我的 iPhone 应用程序中,我尝试使用 JSON 库 (YAJL) 创建一个如下格式的 JSON 字符串: {"user": {"name":"Jon", "username":"jon22
我正在尝试解析 JSON 文件中的数组,如下所示 { "val": [5,6] } 使用以下代码,改编自库中包含的 parse_config.c, char errbuf[1024]; yaj
我正在尝试安装 ruby gem“yajl ruby”。我正在运行 Mac OS 10.7.4 和 Ruby 1.8.7(2011-12-28 补丁级别 357)[universal-darw
嘿,我正在尝试获取 http://github.com/gabriel/yajl-objc在 iOS 上工作。它说“将 YAJLIOS.framework 添加到您的项目”,但我不确定如何获取/构建
我在使用名为“indeed”的 gem 时遇到问题。我正在使用 ruby on rails 创建一个工作应用程序,自从我引入了这个 gem 以来,每次我尝试使用服务器 Rails 时,我都会收到此
使用 YAJL Ruby 解析我得到以下错误 2.0.0-p0 :048 > Yajl::Parser.parse "#{resp.body}" Yajl::ParseError: lexical
不过,我已经通过 gem 'yajl-ruby', '~> 1.1.0' 在我的 Gemfile 中包含了 yajl gem在我的商店 Controller 中调用 parser = Yajl::Pa
首先,对不起我的英语......:) 我正在使用 YAJL 框架 http://github.com/gabriel/yajl-objc 我的文件如下所示: [ [ 3753700, { "alti
我一定是做错了什么……或者这可能是 YAJL 中的错误,但我对此深表怀疑。我无法从 json 对象中检索第一个元素。我回到 YAJL 源以使用示例 parse_config.c 对此进行测试,但它也失
我有一个包含 JSON 散列的大文件 (>50Mb)。像这样的东西: { "obj1": { "key1": "val1", "key2": "val2" }, "obj2
我尝试使用 yajl 2.0.4(使用 yajl_tree.h)解析 JSON 文件,但在检测找到的值是否是数组时遇到一些问题(即使我使用 YAJL_IS_ARRAY,似乎类型字段未设置。 这是我的
我是一名优秀的程序员,十分优秀!