Quelle est la bonne façon de convertir au format json.RawMessage sur une struct?

J'ai cette struct

type SyncInfo struct {
    Target string
}

Maintenant j'ai une requête certaines json des données à partir d'ElasticSearch. Source est de type json.RawMessage.
Tout ce que je veux, c'est la carte source à mon SyncInfo qui j'ai créé la variable mySyncInfo.

J'ai même trouvé comment faire ça...mais ça fait bizarre. J'ai d'abord appel MarshalJSON() pour obtenir un []byte et puis les nourrir que de json.Unmarshal() qui prend un []byte et un pointeur vers mon struct.

Cela fonctionne bien, mais il se sent comme si je suis en train de faire un tronçon supplémentaire. Ai-je raté quelque chose ou est-ce la manière prévue à l'obtenir à partir d'une json.RawMessage à un struct?

var mySyncInfo SyncInfo

jsonStr, _ := out.Hits.Hits[0].Source.MarshalJSON()
json.Unmarshal(jsonStr, &mySyncInfo)

fmt.Print(mySyncInfo.Target)

OriginalL'auteur Christoph | 2014-04-23