1 回答
TA贡献1777条经验 获得超10个赞
我在这里提供了在文件中写入 JSON 并附加更多列的解决方案,请遵循以下代码。
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
type Page struct {
Id int `json:"_id" bson:"_id"`
Title string `json:"title" bson:"title"`
Type string `json:"type" bson:"type"`
Description string `json:"description" bson:"description"`
ProfileImage string `json:"profile_image" bson:"profile_image"`
DateTime int64 `json:"date_time" bson:"date_time"`
Author string `json:"author" bson:"author"`
Status int `json:"status" bson:"status"`
Slug string `json:"slug" bson:"slug"`
}
func main() {
var data interface{}
plan, _ := ioutil.ReadFile("page.json")
err := json.Unmarshal([]byte(plan), &data)
if err != nil {
fmt.Println(err)
}
var ranking = Page{}
var rankings = []Page{}
if sl, ok := data.([]interface{}); ok {
var counter int = 0
for _, val := range sl {
counter = counter + 1
md, _ := val.(map[string]interface{})
md["_id"] = counter
b, err := json.Marshal(md)
if err != nil {
panic(err)
}
// ********************* Unmarshal *********************
err = json.Unmarshal(b, &ranking)
if err != nil {
fmt.Println(err)
}
rankings = append(rankings, ranking)
}
}
rankingsJson, _ := json.Marshal(rankings)
err = ioutil.WriteFile("output.json", rankingsJson, 0644)
fmt.Printf("%+v", rankings)
}
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报