По сути, выход равен входу. За исключением того, что на входе
массив объектов
{id:, userId:, title: body:}
а на выходе:
массив объектов
{ID:, userId:, title: body:}
То есть id -> ID. Ну так из одной структуры скопировать значения в другую структуру с другими полями. При
json.Marshal
получится новый массив.
как сделать вывод таким же красивым как и то что изначально?
Это излишне: для компьютера это приводит лишь к дополнительным накладным расходам.
Если "красоту" человек не будет смотреть где-то, то нет никакого смысла. Кроме того, в браузере в DevTools обычно встроено автоматическое выравнивание отступов, так что это не должно являться проблемой.
Итого, текущая постановка задачи звучит как переливание из пустого в порожнее.