作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个工作代码:
data, err := ioutil.ReadFile("D:/Go/Go_project/Go_pro/firstfile.json")
if err != nil {
fmt.Print(err)
}
data1, err := ioutil.ReadFile("D:/Go/Go_project/Go_pro/secondfile.json")
if err != nil {
fmt.Print(err)
}
var migrations map[string]interface{}
var migrations1 map[string]interface{}
err = json.Unmarshal([]byte(data), &migrations)
err = json.Unmarshal([]byte(data1), &migrations1)
if err != nil {
log.Println("Error:", err)
}
layout := "2006-01-02T15:04:05.000Z"
t, err := time.Parse(layout, fmt.Sprint(migrations["date"]))
t1, err := time.Parse(layout, fmt.Sprint(migrations1["date"]))
if err != nil {
fmt.Println(err)
}
firsthour := t.Hour()
secondhour := t1.Hour()
if firsthour == secondhour {
result := make(map[string][]interface{})
for k, v := range migrations {
result[k] = append(result[k], v)
}
for k, v := range migrations1 {
result[k] = append(result[k], v)
}
b, err := json.Marshal(result)
if err != nil {
fmt.Println(err)
}
os.Stdout.Write(b)
} else {
err = json.Unmarshal([]byte(data), &migrations)
if err != nil {
panic(err)
}
err = json.Unmarshal([]byte(data1), &migrations1)
if err != nil {
panic(err)
}
a, err := json.Marshal(migrations)
a2, err := json.Marshal(migrations1)
if err != nil {
fmt.Println(err)
}
os.Stdout.Write(a)
os.Stdout.Write(a2)
{"data":["is nice","is a good person"],"date":["2012-04-23T18:24:59.511Z","2012-04-23T18:25:00.511Z"],"name":["Kate","Gleison"]}
{
"name":["kate","gleison"],
"date":"2012-04-23T18:00:00.000Z",
"data":["is nice","is a good person"]
}
{
"name":"Kate",
"date":"2012-04-23T18:24:59.511Z",
"data":"is nice"
}
{
"name":"Gleison",
"date":"2012-04-23T18:25:00.511Z",
"data":"is a good person"
}
最佳答案
只是我的猜测(可能有更好的方法):
声明 result
作为字符串到接口(interface)的映射并添加date
单独的键(我将把它的值留给你。我也跳过了 else
部分,因为它似乎与问题无关):
if firsthour == secondhour {
result := make(map[string]interface{})
result["date"] = "value_of_date"
for k, v := range migrations {
if k != "date" {
if result[k] == nil {
result[k] = make([]string, 0)
}
result[k] = append(result[k].([]string), v.(string))
}
}
for k, v := range migrations1 {
if k != "date" {
if result[k] == nil {
result[k] = make([]string, 0)
}
result[k] = append(result[k].([]string), v.(string))
}
}
b, err := json.Marshal(result)
if err != nil {
fmt.Println(err)
}
fmt.Print(string(b))
} else { ... }
关于json - 如何在 JSON 文件中设置新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62403034/
我是一名优秀的程序员,十分优秀!