Hacker News
points by hnlmorg 2 days ago | 0 comments
> A Go pointer is encoded as a JSON null if nil, otherwise it is the recursively JSON-encoded representation of the underlying value.

The doc you linked to literally proves me right.

[–] thayne 2 days ago
That just shows there are pointer values that can be marshaled, not that all such values won't error. If you have a non-nil pointer that points to an object that transitively contains one of the unsupported types, you will get an error.
[–] hnlmorg 2 days ago
I read that differently. If you have a non-nil pointer then you get the address of the pointer irrespective of what that pointer points too.
[–] thayne 1 day ago
I'm not sure how you are getting that from "otherwise it is the recursively JSON-encoded representation of the underlying value", but here is a playground example, where using a non-nil pointer to a channel produces an error: https://go.dev/play/p/JXYuGUQ0TLQ