我正在做一个项目来显示 json 数据并检查它们是否是闰年。
我正在尝试为IsLeapYear创建一个参数,以便在进行测试时可以传入一些 json 值,我尝试使用User指向结构的指针,以便可以传入函数参数中的字段,但它不起作用.
如何在函数参数中传递来自 user.json 的 json 数据,这样我可以更轻松地进行测试?
只是为了让您知道,我的测试文件中出现错误,因为我创建了 DateTest 字符串,但IsLeapYear不是字符串。
这是我的代码:
main.go:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"os"
"time"
)
// Users struct which contains
// an array of users
type Users struct {
Users []User `json:"users"`
}
// User struct which contains a name
// a type and a list of social links
type User struct {
Firstname string `json:"fname"`
Secondname string `json:"lname"`
Date string `json:"date"`
}
var users Users
func Birthday() {
// Open our jsonFile
jsonFile, err := os.Open("users.json")
// if we os.Open returns an error then handle it
if err != nil {
fmt.Println(err)
}
fmt.Println("Successfully Opened users.json")
// defer the closing of our jsonFile so that we can parse it later on
defer jsonFile.Close()
// read our opened xmlFile as a byte array.
byteValue, _ := ioutil.ReadAll(jsonFile)
// we initialize our Users array
// we unmarshal our byteArray which contains our
// jsonFile's content into 'users' which we defined above
json.Unmarshal(byteValue, &users)
IsLeapYear(&users{Firstname: ""}, &users{Secondname: ""}) ---> passing the users fileds
}
func IsLeapYear(firstname *Users, secondname *Users) {
// we iterate through every user within our users array and
// print out the user Type, their name
for i := 0; i < len(users.Users); i++ {
date, err := time.Parse("2006/01/02", users.Users[i].Date)
if err != nil {
date, err = time.Parse("2006-01-02", users.Users[i].Date)
// date, err = time.Parse("2006 01 02", users.Users[i].Date)
if err != nil {
log.Fatal("unsupported date format:", err)
}
}
拉风的咖菲猫
相关分类