Ruby JSON.pretty_generate … довольно некрасив

Я, может казаться, не добираюсь JSON.pretty_generate() на самом деле генерировать симпатичный вывод в направляющих.

Я использую направляющие 2.3.5, и это, кажется, автоматически загружает драгоценный камень JSON.Потрясающе. При использовании 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 и загрузить "Чистую" версию:

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}"

НО, то, что я действительно хочу, является направляющими для создания этого. У кого-либо есть какие-либо подсказки, почему я не могу заставить генератор в направляющих работать правильно?

Спасибо!

19
задан the Tin Man 27 November 2013 в 01:49
поделиться

1 ответ

Я использую 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}"
5
ответ дан 30 November 2019 в 04:29
поделиться