~~~
这种JSON数组生成有简便的方法?
生成JSON数组, 因为我要按顺序来的, 默认GO MAP是随机打乱的
有更方便的代码写法解决?
addjson := ""
mapJson := make(map[string]string)
mapJson["name"] = "按钮1"
mapJson["number"] = "1"
json1, _ := json.Marshal(mapJson)
addjson += string(json1)
mapJson["name"] = "按钮2"
mapJson["number"] = "2"
json1, _ = json.Marshal(mapJson)
addjson += "," + string(json1)
mapJson["name"] = "按钮3"
mapJson["number"] = "3"
json1, _ = json.Marshal(mapJson)
addjson += "," + string(json1)
fmt.Println("[" + addjson + "]")
~~~
type A struct{
Name string `json:"name"`
Number string `json:"number"`
}
var arr []A
for i:=1;i<10;i++{
var a A
a.Name=""
a.Number=""
arr=append(arr,a)
}
json1, _ = json.Marshal(arr)
#1
更多评论
go的map遍历是无序的,但标准库json序列化时map会按照升序排序啊:[源码位置](https://github.com/golang/go/blob/245e95dfabd77f337373bf2d6bb47cd353ad8d74/src/encoding/json/encode.go#L804) ,所以你可以不用怕序列化json后会被打乱。如果要按照你想的方式排序,你可以自定义结构的json序列化接口。
![image.png](https://static.golangjob.cn/230113/3d5b82fb7bdd82a8d6428bc72466d386.png)
#2