Есть ли какая-то техническая причина, по которой некортированные поля не включаются в кодировку /json? Если это не так, и это произвольное решение, возможно, есть дополнительный вариант задней двери (например, "+" ), чтобы включить хотя бы не экспортированный?
Требуется, чтобы клиентский код для экспорта, чтобы получить эту функциональность, чувствует себя неудачно, особенно если в нижнем регистре содержится инкапсуляция или решение для маршальных структур приходит гораздо позже, чем их дизайн.
Как люди справляются с этим? Просто экспортируйте все?
Кроме того, не экспортирует имена полей, что затрудняет выполнение предложенных идиом. Я думаю, что если структура X имеет поле Y, у вас не может быть метода доступа Y(). Если вы хотите предоставить доступ к интерфейсу Y, вам нужно придумать новое имя для получателя, и независимо от того, что вы получите что-то не-идиоматическое в соответствии с http://golang.org/doc/effective_go.html#Getters