我有一个包含字段 JSONB 的简单表:CREATE TABLE IF NOT EXISTS "test_table" ( "id" text NOT NULL, "user_id" text NOT NULL, "content" jsonb NOT NULL, "create_time" timestamptz NOT NULL, "update_time" timestamptz NOT NULL, PRIMARY KEY ("id"));我使用一个简单的查询来生成带有 SQLC 的样板文件。-- name: GetTestData :oneSELECT * FROM test_tableWHERE id = $1 LIMIT 1;但是该content属性生成为json.RawMessage.type TestTable struct { ID string `json:"id"` UserId string `json:"user_id"` Content json.RawMessage `json:"content"` CreateTime time.Time `json:"create_time"` UpdateTime time.Time `json:"update_time"`}下面是存储在内容列中的 JSON 示例:{ "static": { "product": [ { "id": "string", "elements": { "texts": [ { "id": "string", "value": "string" } ], "colors": [ { "id": "string", "value": "string" } ], "images": [ { "id": "string", "values": [ { "id": "string", "value": "string" } ] } ] } } ] }, "dynamic": { "banner": [ { "id": "string", "elements": { "texts": [ { "id": "string", "value": "string" } ], "colors": [ { "id": "string", "value": "string" } ], "images": [ { "id": "string", "values": [ { "id": "string", "value": "string" } ] } ] } } ] }}Static 或 Dynamic 中的嵌套属性是数组。content 属性应该包含一个嵌套对象,我似乎无法提取其中的数据。json.Unrmarshall()似乎只获得顶级属性。有没有办法转换 map[string]interface{}为内容或帮助 SQLC 生成属性作为接口而不是 RawMessage?
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消