我想在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() {
plan, _ := ioutil.ReadFile("page.json")
var data interface{}
err := json.Unmarshal(plan, &data)
if err != nil {
fmt.Println(err)
}
if sl, ok := data.([]interface{}); ok {
counter := 0
for _, val := range sl {
counter++
md, _ := val.(map[string]interface{})
md["_id"] = counter
fmt.Println(md["_id"])
for _, k := range md {
// fmt.Println(k.([]byte))
rankings := Page{}
err = json.Unmarshal(k.([]uint8), &rankings)
if err != nil {
// nozzle.printError("opening config file", err.Error())
}
rankingsJson, _ := json.Marshal(rankings)
err = ioutil.WriteFile("output.json", rankingsJson, 0644)
fmt.Printf("%+v", rankings)
}
}
}
}
它给了我错误
恐慌:接口转换:接口 {} 是字符串,而不是 []uint8
协程 1 [正在运行]:
主.main()
/home/iron/go/src/test/json_object_read/main.go:38 +0x545
不负相思意
相关分类