我有一个使用字符串作为键和值的映射.我有一个键数组,指定映射值的顺序.
我想将该映射序列化为JSON,但保持在数组上定义的顺序.
这里有一个示例代码:http://play.golang.org/p/A52GTDY6Wx
我想将它序列化为:
{
"name": "John",
"age": "20"
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我直接序列化地图,则按字母顺序排列键:
{
"age": "20",
"name": "John"
}
Run Code Online (Sandbox Code Playgroud)
我可以将它序列化为一个映射数组,从而保持顺序,但是会产生许多不需要的字符:
[
{
"name": "John"
},
{
"age": "20"
}
]
Run Code Online (Sandbox Code Playgroud)
在我的实际代码中,我需要序列化在文本文件中指定的数据库查询的结果,并且我需要维护列顺序.我不能使用结构,因为在编译时不知道列.
编辑:我不需要按照指定的顺序读取JSON.生成的JSON应该由人们阅读,所以我只是希望它尽可能具有人类可读性.
我可以使用自定义格式,但JSON非常适合我.
谢谢!