在进行开发的时候,常常需要对json数据进行排序,以便直观的对json数据进行分析,那么使用Go语言如何对json数据排序(直接对第一层进行排序),直接上代码
package main
import (
"encoding/json"
"fmt"
"sort"
)
func main() {
map2 := getMapFromJson()
fmt.Println(" map的长度:", len(map2))
//1.定义一个slice
s1 := make([]string, 0, len(map2))
map3 := make(map[string]string)
//2.遍历map获取key-->s1中
for key := range map2 {
s1 = append(s1, key)
}
//3.给s1进行排序
//sort.Ints(s1) //使用sort包下的方法直接排序,不用自己写冒泡了。
sort.Strings(s1)
//4. 遍历s1,map
for _, k := range s1 { // 先下标,再数值
map3[k] = map2[k]
}
b, berror := json.Marshal(map3)
if berror != nil {
fmt.Print("berror:", berror)
}
fmt.Println(string(b))
}
func getMapFromJson() map[string]string {
var jsonBody = []byte(`{"akehi":"绝地求生","snifeni":"王者农药","undinfi":"消消乐","yunin":"传奇霸业","zhondfi":"连连看"}`)
var map4 = make(map[string]string)
err := json.Unmarshal(jsonBody, &map4)
if err != nil {
println("unJsonerr:", err)
} else {
for k, v := range map4 {
print("map4 k and Value :", k, v)
}
}
return map4
}