Ruby JSON.pretty_generate ……非常不合适
我似乎无法让JSON.pretty_generate()
在Rails中实际生成漂亮的输出。
我正在使用Rails 2.3.5,它似乎自动加载JSON gem。 真棒。 使用script/console
这确实产生了JSON:
some_data = {'foo' => 1, 'bar' => 20, 'cow' => [1, 2, 3, 4], 'moo' => {'dog' => 'woof', 'cat' => 'meow'}} some_data.to_json => "{\"cow\":[1,2,3,4],\"moo\":{\"cat\":\"meow\",\"dog\":\"woof\"},\"foo\":1,\"bar\":20}"
但是这不会产生很好的输出 :
JSON.pretty_generate(some_data) => "{\"cow\":[1,2,3,4],\"moo\":{\"cat\":\"meow\",\"dog\":\"woof\"},\"foo\":1,\"bar\":20}"
我发现生成它的唯一方法是使用irb
并加载“Pure”版本:
require 'rubygems' require 'json/pure' some_data = {'foo' => 1, 'bar' => 20, 'cow' => [1, 2, 3, 4], 'moo' => {'dog' => 'woof', 'cat' => 'meow'}} JSON.pretty_generate(some_data) => "{\n \"cow\": [\n 1,\n 2,\n 3,\n 4\n ],\n \"moo\": {\n \"cat\": \"meow\",\n \"dog\": \"woof\"\n },\n \"foo\": 1,\n \"bar\": 20\n}"
但是,我真正想要的是Rails产生这个。 有没有人有任何提示,为什么我不能让Rails中的生成器正常工作?
谢谢!
要生成漂亮的JSON输出,您似乎只缺少一个puts
调用。
数据:
some_data = {'foo' => 1, 'bar' => 20, 'cow' => [1, 2, 3, 4], 'moo' => {'dog' => 'woof', 'cat' => 'meow'}}
仅调用JSON.pretty_generate
:
> JSON.pretty_generate some_data => "{\n \"foo\": 1,\n \"bar\": 20,\n \"cow\": [\n 1,\n 2,\n 3,\n 4\n ],\n \"moo\": {\n \"dog\": \"woof\",\n \"cat\": \"meow\"\n }\n}"
添加puts
组合:
> puts JSON.pretty_generate some_data { "foo": 1, "bar": 20, "cow": [ 1, 2, 3, 4 ], "moo": { "dog": "woof", "cat": "meow" } }
我使用Rails 2.3.8并安装了JSON gem( gem install json
)。 JSON.pretty_generate
现在在脚本/控制台中做得很好:
>> some_data = {'foo' => 1, 'bar' => 20, 'cow' => [1, 2, 3, 4], 'moo' => {'dog' => 'woof', 'cat' => 'meow'}} => {"cow"=>[1, 2, 3, 4], "moo"=>{"cat"=>"meow", "dog"=>"woof"}, "foo"=>1, "bar"=>20} >> JSON.pretty_generate(some_data) => "{\n \"cow\": [\n 1,\n 2,\n 3,\n 4\n ],\n \"moo\": {\n \"cat\": \"meow\",\n \"dog\": \"woof\"\n },\n \"foo\": 1,\n \"bar\": 20\n}"