Ich kann nicht scheinen, JSON.pretty_generate()
zu bekommen, um wirklich schöne Ausgabe in Rails zu erzeugen.Ruby JSON.pretty_generate ... ist ziemlich unpretty
Ich benutze Rails 2.3.5 und es scheint automatisch das JSON Juwel zu laden. Genial. Während script/console
mit dieser in der Tat JSON produziert:
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}"
Aber das ist nicht ziemlich Ausgang produziert:
JSON.pretty_generate(some_data)
=> "{\"cow\":[1,2,3,4],\"moo\":{\"cat\":\"meow\",\"dog\":\"woof\"},\"foo\":1,\"bar\":20}"
Der einzige Weg, die ich gefunden habe zu generieren es irb
zu bedienen und zu Laden Sie die "Pure" Version:
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}"
ABER, was ich wirklich will, ist Rails, um dies zu produzieren. Hat jemand irgendwelche Tipps, warum ich den Generator in Rails nicht richtig arbeiten kann?
Danke!
@Amy scheint es einige Ungereimtheiten in Ihren Beispielen zu sein . '{" cow "=> [1, 2, 3, 4], ...' ist kein gültiger JSON. JSON verwendet ':' anstelle von Rubys '=>'. Können Sie die tatsächliche Ausgabe einfügen? –
Entschuldigung. Ich habe aus einem Terminal, wo ich die Ausgabe durch ein Puts() gestellt hatte, Ausschneiden und Einfügen. Das obige ist die genaue Ausgabe von script/console und irb. – Amy
Können Sie erklären, wie Sie die zweite Ausgabe bekommen? (d. h. wo ist die Zeile JSON.pretty_generate (some_data)) – kikito