Se você achar que a pretty_generate
opção incorporada na biblioteca JSON do Ruby não é "bonita" o suficiente, recomendo minha própria gema NeatJSON para sua formatação.
Para usá-lo:
gem install neatjson
e depois use
JSON.neat_generate
ao invés de
JSON.pretty_generate
Assim como o Ruby, pp
ele mantém objetos e matrizes em uma linha quando eles se ajustam, mas se agrupa em múltiplos conforme necessário. Por exemplo:
{
"navigation.createroute.poi":[
{"text":"Lay in a course to the Hilton","params":{"poi":"Hilton"}},
{"text":"Take me to the airport","params":{"poi":"airport"}},
{"text":"Let's go to IHOP","params":{"poi":"IHOP"}},
{"text":"Show me how to get to The Med","params":{"poi":"The Med"}},
{"text":"Create a route to Arby's","params":{"poi":"Arby's"}},
{
"text":"Go to the Hilton by the Airport",
"params":{"poi":"Hilton","location":"Airport"}
},
{
"text":"Take me to the Fry's in Fresno",
"params":{"poi":"Fry's","location":"Fresno"}
}
],
"navigation.eta":[
{"text":"When will we get there?"},
{"text":"When will I arrive?"},
{"text":"What time will I get to the destination?"},
{"text":"What time will I reach the destination?"},
{"text":"What time will it be when I arrive?"}
]
}
Ele também suporta uma variedade de opções de formatação para personalizar ainda mais sua saída. Por exemplo, quantos espaços antes / depois dos dois pontos? Antes / depois das vírgulas? Dentro dos colchetes de matrizes e objetos? Deseja classificar as chaves do seu objeto? Deseja que todos os dois pontos estejam alinhados?