对于您实际上根本不需要使用的特定要求
json.Marshal,您可以像这样简单地实现自己的功能:
type OrderedMap map[string]stringfunc (om OrderedMap) ToJson(order ...string) string { buf := &bytes.Buffer{} buf.Write([]byte{'{', 'n'}) l := len(order) for i, k := range order { fmt.Fprintf(buf, "t"%s": "%v"", k, om[k]) if i < l-1 { buf.WriteByte(',') } buf.WriteByte('n') } buf.Write([]byte{'}', 'n'}) return buf.String()}func main() { om := OrderedMap{ "age": "20", "name": "John", } fmt.Println(om.ToJson("name", "age"))}


