Если вы (как и я) обнаружите, что опция pretty_generate
, встроенная в библиотеку JSON в Ruby, недостаточно «хороша», я рекомендую для своего форматирования мой собственный NeatJSON
гем.
Чтобы использовать его gem install neatjson
, а затем использовать JSON.neat_generate
вместо JSON.pretty_generate
.
Как и Ruby's pp
, он будет держать объекты и массивы на одной строке, когда они подходят, но при необходимости переносить их на несколько. Например:
{
"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?"}
]
}
Он также поддерживает различные параметры форматирования для дальнейшей настройки вывода. Например, сколько пробелов до / после двоеточия? До / после запятых? Внутри скобок массивов и объектов? Вы хотите отсортировать ключи вашего объекта? Вы хотите, чтобы все колоны были выстроены в очередь?