¿Existe algún motivo técnico por el que los campos no exportados no estén incluidos en la codificación/json? De lo contrario, y se trata de una decisión arbitraria, ¿podría existir una opción de puerta trasera adicional (por ejemplo, "+") para incluir aunque no se haya exportado?JSON y tratar con campos no exportados
Exigir código de cliente para exportar para obtener esta funcionalidad parece desafortunado, especialmente si minúsculas proporciona encapsulación o si la decisión de organizar las estructuras llega mucho más tarde que el diseño de las mismas.
¿Cómo están lidiando las personas con esto? Solo exportar todo?
Además, no exportar nombres de campo hace que sea difícil seguir los modismos sugeridos. Creo que si una estructura X tiene el campo Y, no puede tener un método de acceso Y(). Si desea proporcionar acceso a la interfaz Y usted tiene que llegar a un nuevo nombre para el comprador y no importa lo que se obtiene algo no-idiomática según http://golang.org/doc/effective_go.html#Getters
Para el registro, tuve que Unmarshall usando "json.Unmarshal (b, & d.jsonData)". ¿Hice algo mal, o es eso esperado? – Derek
@Derek, gracias, actualicé mi respuesta. Como dije, el código no fue probado. Aparentemente también olvidé una declaración de devolución en mi método 'UnmarshalJSON()'. Yo arreglé esto también. –
Llego un poco tarde al espectáculo, pero ... mientras que lo anterior funciona, se exportan Field1 y Field2 _. Puede leer y escribir Campo1 y Campo2 de JsonData (con una J mayúscula) fuera de ese paquete. Entonces, aunque esto es genial en teoría, en realidad no hace nada diferente a exportar tanto el tipo como los campos. – davidjosepha