json文件导入mysql
一个头疼的问题
解决了很久
我现在有一个data.json
里面有很多的数据,这个data.json是utf8的
导入数据库后也是显示正常的
但是读取出来返回到客户端
就乱码了
其实我觉得可能是我客户端的问题
但是我客户端请求也是utf8的
拿到的response也是utf8的
我也不知道到底是什么问题
所以我最终只能想了一个办法
就是用代码把data.json都读取出来
保存到数据库中
func (this *RootController) HandleData() {
//打开data.json文件
file, err := os.Open("./static/data/data.json")
defer file.Close()
if err != nil {
this.Ctx.WriteString("fail-" + err.Error())
return
}
//创建一个字节切片[]byte
bytes := make([]byte, 100*1024)
//将数据读取到切片中
num, err := file.Read(bytes)
if err != nil {
this.Ctx.WriteString("fail-" + err.Error())
return
}
//定义一个Comment切片
var oldComments []models.OldComment
//将字节切片中的数据反序列化到comments切片中
json.Unmarshal(bytes[:num], &oldComments)
//创建orm对象
o := orm.NewOrm()
//开启事务
o.Begin()
//遍历切片,将cmt插入到数据库
for i := 0; i < len(oldComments); i++ {
cmt := oldComments[i]
var comment models.Comment
comment.Name = cmt.User
comment.Content = cmt.Content
time := time.Now().Format("2006-01-02 15:04:05")
comment.Time = time
comment.Reply = 0
o.Insert(&comment)
}
//提交事务
o.Commit()
this.Ctx.WriteString("ok")
}