Is it possible to have a struct with multiple JSON tags?

后端 未结 2 1234
情深已故
情深已故 2021-01-19 04:16

I post a request to a server and get a reply in JSON format. I\'m able to unmarshal it to a struct. Then I need to create a new JSON file with the same data but different JS

相关标签:
2条回答
  • 2021-01-19 04:24

    What is possible though, with 2 identically laid out structs (namin, types and ordering of fields needs to match exactly) is to cast from one to the other. I would be very cautious of doing this though and make sure the 2nd type (bar in your example) is unexported to prevent from being used elsewhere.

    https://play.golang.org/p/y8EH1U9_3jN

    0 讨论(0)
  • 2021-01-19 04:45

    It's not possible. The encoding/json package only handles the json key in struct tags. If the json key is listed multiple times (as in your example), the first occurrence will be used (this is implemented in StructTag.Get()).

    Note that this is an implementation restriction of the encoding/json package and not that of Go. One could easily create a similar JSON encoding package supporting either multiple tag keys (e.g. json1, json2) or multiple occurrences of the same key (as in your example).

    0 讨论(0)
提交回复
热议问题