json解析时碰到一个问题

tytian · · 915 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

我的问题是: 在代码中name := base58.Decode(group.Name)增加这一行,json_iterator.Marshal(group)这个函数就运行下去了,但是 json.Marshal(group)是可以的,是为什么,我的程序中就碰到了类似这样的事情,其中并没有对请求过来的数据进行过编解码的操作,可是打印出来的数据变成了乱码类似这样“\ufffd\ufffd\ufffd”的,然后进行json序列化时程序就会卡住,想知道这是什么原因还有解决办法是什么? package main import ( "encoding/json" "fmt" "os" "github.com/btcsuite/btcutil/base58" "github.com/json-iterator/go" ) func main() { type ColorGroup struct { ID int Name string Colors []string } group := ColorGroup{ ID: 1, Name: "AB2SSDF", Colors: []string{"Crimson", "Red", "Ruby", "Maroon"}, } name := base58.Decode(group.Name) //这里进行一个base58解码后,Name字段就会变成乱码,如果name字符串中含有数字,json_iterator.Marshal函数就进行不下去了,想问一下这是什么原因,要怎么解决 fmt.Println("name",string(name)) group.Name = string(name) b, err := json.Marshal(group) if err != nil { fmt.Println("error:", err) } os.Stdout.Write(b) fmt.Println("\n") var json_iterator = jsoniter.ConfigCompatibleWithStandardLibrary b, err = json_iterator.Marshal(group) os.Stdout.Write(b) fmt.Println("\n") }

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

915 次点击  
加入收藏 微博
7 回复  |  直到 2018-06-16 11:52:10
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传