我正在尝试打印一个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的新手。
提前感谢。