Golang JSON RawMessage 文字

eat*_*hil 4 json go

是否可以在 Golang 中创建一个 json.RawMessage 文字?

我希望能够做这样的事情:

type ErrorMessage struct {
    Timestamp string
    Message   json.RawMessage
}

func getTestData() ErrorMessage {
    return ErrorMessage{
        Timestamp: "test-time",
        Message:   "{}"
    }
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西。是我见过的最简洁的。我找不到用于创建原始 json 消息的“结构”文字示例。

Jim*_*imB 9

json.RawMessage的底层数据类型是[]byte

您可以转换字符串,或直接在文字中使用字节切片

msg := ErrorMessage{
    Timestamp: "test-time",
    Message:   []byte("{}"),
}
Run Code Online (Sandbox Code Playgroud)

请注意,要按预期实际编组它,您需要使用*json.RawMessage,您不能在文字上下文中获取其地址。