在go中,解析json一直是一个让人痛苦的话题。尤其是对不特定的json对象,将它解析到map[string]any
对象时,key会发生乱序。
大部分场景中,这不会有什么问题,但有一些涉及签名的场景,则可能产生错误。有时需要对Marshal后产生的字符串json,按特定key顺序展示。
这个库是腾讯的老哥开发的,功能非常强大。尤其对json排序有很丰富的接口。MustMarshal
可以传入丰富的配置。
直接上示例:
MarshalJSON
接口这是自定义处理json的一般方法,定义一个新类型:
并实现MarshalJSON
即可。
先放用例:
实现: