Parece que no puedo obtener JSON.pretty_generate()
para realmente generar una salida bonita en Rails.Ruby JSON.pretty_generate ... es bastante poco agradable
Estoy usando Rails 2.3.5 y parece cargar automáticamente la joya JSON. Increíble. Durante el uso de este script/console
produce de hecho 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}"
Pero esto no produce bastante de salida:
JSON.pretty_generate(some_data)
=> "{\"cow\":[1,2,3,4],\"moo\":{\"cat\":\"meow\",\"dog\":\"woof\"},\"foo\":1,\"bar\":20}"
La única forma que he encontrado para generarlo es utilizar irb
ya cargar la versión "pura":
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}"
PERO, lo que realmente quiero es que Rails produzca esto. ¿Alguien tiene alguna sugerencia de por qué no puedo hacer que el generador en Rails funcione correctamente?
Gracias!
@Amy, parece que hay algunas inconsistencias en los ejemplos . '{" cow "=> [1, 2, 3, 4], ...' no es válido JSON. JSON usa ':' en lugar de '=>' de Ruby. ¿Puedes pegar la salida real? –
Perdón por eso. Estaba cortando y pegando desde un terminal donde había puesto la salida a través de puts(). Lo anterior es el resultado exacto de script/console e irb. – Amy
¿Podría explicar cómo obtiene la segunda salida? (es decir, ¿dónde está la línea JSON.pretty_generate (some_data)) – kikito