Open nghtstr opened 3 years ago
Hey @nghtstr, we don't currently guarantee that the data structures in stripe-go marshal and unmarshal bidirectionally like you might expect. Most of them do, but there's a few places where structures need some pretty edgy custom UnmarshalJSON
implementations to work correctly, and sources are an example of that:
If you want to store Stripe data somewhere, we'd recommend mapping the stripe-go structures to your own internal variant of such — that way you have full control over how marshaling and unmarshaling works, and won't be broken by any future changes that we might make.
Per some internal discussion, bidirectional marshalling/unmarshalling would be a nice-to-have, so I'm rebranding this as a feature request.
When I get a
customer
, and expand thesources
; if the source is of typeSource
, it does not json.Marshal correctly. Here is some basic code demonstrating that the code should work as expected:The array of
customer.Sources.Data
does give the appropriateSourceObject
but it does notjson.Marshal
correctly.