unmarshal marshal handling golang deserialize and json go marshalling

handling - Nombres de teclas JSON en minúsculas con JSON Marshal en Go



marshal golang json (2)

Deseo utilizar el paquete "encoding/json" para ordenar una estructura declarada en uno de los paquetes importados de mi aplicación.

P.ej.:

type T struct { Foo int }

Debido a que se importa, todos los campos disponibles (exportados) en la estructura comienzan con una letra mayúscula. Pero deseo tener nombres de teclas minúsculas:

out, err := json.Marshal(&T{Foo: 42})

resultará en

{"Foo": 42}

pero deseo obtener

{"foo": 42}

¿Es posible sortear el problema de alguna manera fácil?


Echa un vistazo a los documentos para la encoding/json.Marshal . Discute el uso de etiquetas de campo struct para determinar cómo se formatea el json generado.

Por ejemplo:

type T struct { FieldA int `json:"field_a"` FieldB string `json:"field_b,omitempty"` }

Esto generará JSON de la siguiente manera:

{ "field_a": 1234, "field_b": "foobar" }


Puede hacer su propia estructura con las claves que desea exportar y darles las etiquetas json apropiadas para los nombres en minúsculas. Luego puede copiar la estructura deseada en la suya antes de codificarla como JSON. O si no quieres molestarte en crear una estructura local, probablemente puedas hacer un map[string]interface{} y codificar eso.