Vom docs:Welche Eingabe wird dazu führen, dass golang's json.Marshal einen Fehler zurückgibt?
JSON darstellen können nicht zyklische Datenstrukturen und Marshal sie nicht handhaben. Das Übergeben zyklischer Strukturen an Marshal führt zu einer unendlichen Rekursion.
Ich habe diese Situation erlebt, die in einer Laufzeitpanik resultiert.
Was ich frage mich ist, wenn jemand ein Arbeitsprogramm zur Verfügung stellen kann, das eine Nicht-Panik-Situation zeigt, wo json.Marshal einen Nicht-Null-Fehler zurückgibt. Die besten Antworten würden eindeutig die verwendeten Eingänge enthalten.
würde ich empfehlen, Ihre Frage etwas revidieren, weil ich Sie suchen ein Feature wie 'PreserveReferencesHandling' in newtonsoft der json.NET Bibliothek (C#) jedoch glauben, könnte ich deine Frage richtig beantworten, indem sie wie etwas unmarshalling' {"name": "evan", "age": 26} 'weil der letzte Absatz Ihrer Frage nicht sehr spezifisch ist. Aus diesem Zitat klingt es so, als müssten Sie "UnmarshalJSON" für Ihren Typ implementieren. Um es klar zu sagen, du willst das in Go machen; http://stackoverflow.com/questions/17818386/how-to-serialize-as-json-an-object-structure-with-circular-references – evanmcdonnal
Marshal ein Typ, der json.Marshaler implementiert, indem er seine eigene MarshalJSON-Methode und Fehler bringt immer. Tot einfach. Absolut keine Eingabe (n) verwendet. – Volker
Ja, danke @Volker - das hätte ich machen sollen. #facepalm – mdwhatcott