gpt4 book ai didi

json - 如何在 JSON 文件中设置新日期

转载 作者:行者123 更新时间:2023-12-01 22:22:24 29 4
gpt4 key购买 nike

我有一个工作代码:

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"]
}

这是我的 2 个 json 文件。

第一的:
{
"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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com