golang json对象数组为空

时间:2018-03-23 01:42:07

标签: go

我正在尝试打印一个JSON字符串,它是目录中文件和目录的列表。这是我的代码

type Files struct{
    filename string `json:"filename"`
    is_dir bool `json:"is_dir"`
}

-

func dir_handler(w http.ResponseWriter, r *http.Request){
    dir := r.URL.Query().Get("dir")

    if dir == ""{
        dir = getConfig("root_path")
    }

    files, err := ioutil.ReadDir(dir)

    if err != nil{
        log.Fatal("error reading directory: ", err)
    }

    /**
     * response is in the following form
     * {
     *     files: [
     *         {
     *             "name":"dir_name",
     *             "is_dir": true
     *         },
     *         {
     *             "name":"filename_name",
     *             "is_dir": false
     *         },
     *     ]
     * }
     */

    list_of_files := []Files{}
    for _, file := range files{
        fi, _ := os.Stat(dir+"/"+file.Name())
        mode := fi.Mode()
        the_file := Files{dir+"/"+file.Name(), mode.IsDir()}

        list_of_files = append(list_of_files, the_file)
    }


    response, err := json.Marshal(list_of_files)

    if err != nil{
        log.Fatal("error encoding json: ", err)
    }

    fmt.Println(string(response))
    // w.Write([]byte(response))
}

当它运行时,response具有我期望的格式,除了所有对象都是空的,例如关注

[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]

请告诉我我的代码有什么问题,老实说,我是Go的新手。

提前感谢。

0 个答案:

没有答案