json.Unmarshal verschachtelte Objekt in string oder []byte

Ich versuche, Unmarshal einige json, so dass eine verschachtelte Objekt nicht geparst, sondern einfach nur behandelt werden wie ein string oder []byte.

So, ich möchte Folgendes erhalten:

{
    "id"  : 15,
    "foo" : { "foo": 123, "bar": "baz" }
}

Deren Marshalling rückgängig gemacht wurde in:

type Bar struct {
    Id  int64  `json:"id"`
    Foo []byte `json:"foo"`
}

Bekomme ich die folgende Fehlermeldung:

json: cannot unmarshal object into Go value of type []uint8

Spielplatz demo

  • Warum nicht map[string]interface{}? Es hat auch den Vorteil der re-Marshalling der richtige Weg.
  • dies ist in der Regel nicht empfohlen, da dies ermöglicht es für jede Art, wenn Sie nicht explizit wollen, dass ALLE Typen unterstützt werden, nicht leere Schnittstelle (interface{}), wird es führen, dass Sie mehr Probleme als es löst
InformationsquelleAutor Ilia Choly | 2013-11-20
Schreibe einen Kommentar