Non riesco a ottenere lo JSON.pretty_generate()
per generare effettivamente un buon output in Rails.Ruby JSON.pretty_generate ... è piuttosto unpretty
Uso Rails 2.3.5 e sembra che venga caricato automaticamente il gioiello JSON. Eccezionale. Durante l'utilizzo di questo script/console
effettivamente produce 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}"
Ma questo non produce abbastanza uscita:
JSON.pretty_generate(some_data)
=> "{\"cow\":[1,2,3,4],\"moo\":{\"cat\":\"meow\",\"dog\":\"woof\"},\"foo\":1,\"bar\":20}"
L'unico modo che ho trovato per generarlo è quello di utilizzare irb
e per caricare la versione "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}"
MA, quello che voglio è Rails per produrre questo. Qualcuno ha qualche consiglio perché non riesco a far funzionare correttamente il generatore in Rails?
Grazie!
@Amy, sembra che ci sia alcune incongruenze nei tuoi esempi . '{" cow "=> [1, 2, 3, 4], ...' non è un JSON valido. JSON usa ':' al posto di Ruby '=>'. Puoi incollare l'output effettivo? –
Mi dispiace per quello. Stavo tagliando e incollando da un terminale dove avevo messo l'output attraverso un puts(). Quanto sopra è l'output esatto da script/console e irb. – Amy
Puoi spiegare come ottieni la seconda uscita? (Ad esempio, dove è la riga JSON.pretty_generate (some_data)) – kikito