我运行以下代码:
package main
import (
"encoding/json"
"fmt"
)
func main() {
raw := json.RawMessage(`{"foo":"bar"}`)
j, err := json.Marshal(raw)
if err != nil {
panic(err)
}
fmt.Println(string(j))
}
游乐场: http :
//play.golang.org/p/qbkEIZRTPQ
输出:
"eyJmb28iOiJiYXIifQ=="
所需的输出:
{"foo":"bar"}
为什么base64编码它RawMessage
就像普通的一样[]byte
?
毕竟,RawMessage的MarshalJSON实现只是返回字节片
// MarshalJSON returns *m as the JSON encoding of m.
func (m *RawMessage) MarshalJSON() ([]byte, error) {
return *m, nil
}
在螺母中找到答案
传递给的值json.Marshal
必须是json.RawMessage
正常工作的指针:
package main
import (
"encoding/json"
"fmt"
)
func main() {
raw := json.RawMessage(`{"foo":"bar"}`)
j, err := json.Marshal(&raw)
if err != nil {
panic(err)
}
fmt.Println(string(j))
}
它失败了并给出了像贝娄这样的例外。 xml格式与不兼容吗?
问题内容: 我正在使用Base64编码来编码Java中的用户ID字段。 我想知道上面的字符串abc是否包含字符“,:”吗? 当以abc返回Base64编码的字符串时,它是否会包含以下字符? 问题答案: 您不会在Base64编码的字符串中看到任何逗号,冒号或双引号。由于等号用于填充结尾内容,因此您会看到等号。
我一直在尝试在我的应用程序中实现GMAIL API,该应用程序是使用Swift5和Xcode构建的。我已经成功地检索到来自用户的电子邮件,但我无法从编码字符串中获得实际的文本。每当我尝试将这个base64编码的数据转换为普通字符串时,它都返回NIL。 这是绳子 stackoverflow的一些答案建议向string添加填充,但这也不起作用。
我在C#和TSQL中有base64字符串编码/解码函数,我的问题是C#的编码结果与TSQL的编码结果不同。 null 你知道如何匹配结果吗?
我想将一个字符串编码成并通过套接字传输它,然后解码回来。 下面是我的代码,结果是“77+9x6s=” 有什么想法如何实现这一点吗?
在查看Ruby的base64.encode的源代码时,我无法确定在base64中编码数据之前,将字符串编码转换为什么字符(如果有的话)。在Base64中编码的Utf-8字符串将与在Base64中编码的Utf-16字符串有很大不同。Ruby对这次行动有什么promise吗?