Mengisih Kekunci JSON dalam Go
Pakej json Python menyediakan pilihan sort_keys untuk menghasilkan JSON dengan kunci dalam susunan yang disusun. Artikel ini meneroka cara untuk mencapai kefungsian serupa dalam pakej pengekodan/json Go.
Penyelesaian
Dalam Go, pakej json mengisih kunci secara automatik:
Butiran Pelaksanaan
Pelaksanaan pengisihan kunci boleh didapati dalam fail encode.go dalam pengekodan /json package:
func (enc *encodeState) encodeMap(v reflect.Value) { m := v.Interface().(map[string]interface{}) if enc.indent { enc.write(`{` + enc.indentPrefix) } else { enc.write(`{`) } enc.mapStarted = true keys := make([]string, 0, len(m)) for k := range m { keys = append(keys, k) } sort.Strings(keys) for i, k := range keys { enc.encodeValue(reflect.ValueOf(k)) enc.write(`:`) enc.encodeValue(reflect.ValueOf(m[k])) if i < len(m)-1 { enc.write(`,`) } } enc.write(`}`) enc.mapStarted = false }
Pelaksanaan ini memastikan kekunci peta diisih mengikut leksikografi dan struktur kunci diisih berdasarkan susunannya dalam definisi struct.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Kunci JSON Apabila Mengekodkan JSON dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!