gpt4 book ai didi

json - 去 "encoding/json": marshal json field

转载 作者:IT王子 更新时间:2023-10-29 02:33:58 26 4
gpt4 key购买 nike

我有一个带有 json 字段(DisplayInfo 和 FormatInfo)的 PostgreSQL 模式。该字段的结构是动态的。

我只能将其读取并呈现为字符串(呈现结构中的字符串类型):

[
{
"ID":9,
"Name":"120 №1",
"DisplayInfo":"{\"path\": \"http://path/to/img.png\"}",
"Format":{
"Code":"frame-120",
"Width":120,
"Height":60,
"FormatInfo":"[{\"name\": \"\\u0413\\u043b\\u0430\\u0432\\u043d\\u043e\\u0435 \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0435\", \"field_type\": \"img\", \"key\": \"path\"}]"
},
"Weight":0.075,
"Application":8,
"Url":"//path/to/game",
"Referrer":""
}
]

但我希望输出字段 DisplayInfo 作为 JSON 对象。如何 ?

我的渲染代码:

func renderJSON(w http.ResponseWriter, obj models.Model) {
js, err := json.Marshal(obj)

if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Write(js)
}

更新 1:该字段的结构是动态的。 DisplayInfo 可能有“路径”字段,也可能没有。他们可能有其他字段。

UPD 2. 我想输出 DisplayInfo 和 FormatInfo 作为 json-object(不是字符串),作为整个对象的一部分,像这样:

[
{
"ID":9,
"Name":"120 №1",
"DisplayInfo":{"path": "http://path/to/img.png"},
"Format":{
"Code":"frame-120",
"Width":120,
"Height":60,
"FormatInfo":[{"name": "\\u0413\\u043b\\u0430\\u0432\\u043d\\u043e\\u0435 \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0435", "field_type": "img", "key": "path"}]
},
"Weight":0.075,
"Application":8,
"Url":"//path/to/game",
"Referrer":""
}
]

UPD 3:结构

实际结构是:

type BannerSerializer struct {
ID int
Name string
DisplayInfo string
Format formatSerializer
Weight float32
Application int
Url string
Referrer string
}

然后我尝试这个结构:

type BannerSerializer struct {
ID int
Name string
DisplayInfo json.RawMessage
Format formatSerializer
Weight float32
Application int
Url string
Referrer string
}
  • DisplayInfo 序列化为 base64 字符串(或类似 base64,不知道)

最佳答案

使用指向 json.RawMessage 的指针:

type Data struct {
Obj *json.RawMessage
}

Playground :http://play.golang.org/p/Qq9IUBDLzJ .

关于json - 去 "encoding/json": marshal json field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823580/

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