name keywords etiquetas ejemplos description content json struct go

json - keywords - Cómo definir múltiples etiquetas de nombre en una estructura



meta name keywords (2)

Dice en la documentación del paquete de reflejos:

Por convención, las cadenas de etiquetas son una concatenación de claves separadas por espacios: pares de "valores". Cada clave es una cadena no vacía que consta de caracteres que no son de control además del espacio (U + 0020 ''''), comillas (U + 0022 ''"'') y dos puntos (U + 003A '':''). Cada valor se cita usando los caracteres U + 0022 ''"'' y la sintaxis Go string literal.

Lo que debe hacer es usar espacio en lugar de coma como separador de cadenas de etiquetas.

type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"pageId"` }

Necesito obtener un artículo de una base de datos mongo, así que definí una estructura como esta

type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` }

Ahora también necesito codificarlo en JSON, pero codifica los campos como mayúsculas (obtengo PageId en vez de pageId), así que también necesito definir etiquetas de campo para JSON. Intenté algo como esto pero no funcionó:

type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` }

Entonces, ¿cómo se puede hacer esto, definir múltiples etiquetas de nombre en una estructura?


Gracias por la respuesta aceptada.

A continuación es solo para la gente perezosa como yo.

INCORRECTO

type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` }

CORRECTO

type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"pageId"` }