golang讀取檔案的json資料流,並解析到struct,儲存到資料庫

程式碼的壞味道發表於2020-10-15

做的時候挺難的感覺,做出來就覺得很容易…..

直接選取json檔案上傳就行,不用儲存檔案

package controller

import (
    "encoding/json"
    "errors"
    "fmt"
    "gindemo/middleware"
    "github.com/gin-gonic/gin"
)

type User struct {
    Uid   string `json:"uid"`
    Owner string `json:"owner"`
    User  string `json:"user"`
}

type Json struct {
}


func Loadfile(c *gin.Context) {
    //接收上傳檔案
    file, _, err := c.Request.FormFile("json")
    if err != nil {
        return
    }
    defer file.Close()
    buf := make([]byte, 1024)
    for {
        len, _ := file.Read(buf)
        if len == 0 {
            break
        }
        b := string(buf)
        var user[] User
        //如果josn檔案為陣列的話,這裡用user[]接收
        //如果是普通json鍵值對,用user接收就行
        err = json.Unmarshal([]byte(b[:len]), &user)
        if err != nil {
            fmt.Println("err = ", err)
            return
        }
        for _ ,a:=range user {
            fmt.Printf("tmp = %+v\n", a.Uid)
        }
    }
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
cfun

相關文章