2016-08-12 6 views
0

Я пишу инструмент для изменения огромного json-файла в groovy. Я прочитал этот файл, добавлю новую запись и сохраню, но мне бы хотелось избежать изменений в местах, которые я не трогал.JSON pretty print customization

Я использую new JsonBuilder(o).toPrettyString() получить довольно форматированный вывод JSON, но эта функция дает мне результат:

{ 
    "key": "Foo", 
    "items": [ 
     { 
      "Bar1": 1 
     }, 
     { 
      "Bar2": 2 
     } 
    ] 
} 

, когда мне нужно, чтобы получить это:

{ 
    "key": "Foo", 
    "items": 
    [ 
     { 
      "Bar1": 1 
     }, 
     { 
      "Bar2": 2 
     } 
    ] 
} 

Там должен быть символ новой строки до [.

Это важно для меня, потому что по-другому я не могу найти в истории GIT, что я действительно изменил.

Вы знаете, как этого достичь?

+0

Это то, что вы хотите? http://stackoverflow.com/questions/2614862/how-can-i-beautify-json-programmatically –

+0

@ BünyaminSarıgül нет, есть решения для javascript – akn

+0

проверьте это, возможно, это поможет http://stackoverflow.com/questions/19018063/JSON-выход-с-заводной –

ответ

0

JsonBuilder метода toPrettyString() делегаты непосредственно JsonOutput.prettyPrint() следующим образом:

public String toPrettyString() { 
    return JsonOutput.prettyPrint(toString()); 
} 

Последний метод не является действительно настраиваемым на всех. Тем не менее, источник свободно доступен в любом центральном репозитории или зеркале Maven. Я бы предложил найти источник и создать свой собственный вариант метода, который ведет себя так, как вам хотелось бы. Источник для JsonOutput.prettyPrint() составляет всего около 65 строк и не должен меняться так сильно.