不幸的是,该
encoding/json程序包还没有办法做到这一点。您现在(手动)执行的 *** 作是执行此 *** 作的最佳方法,而无需修改内置程序包。
如果要打补丁
encoding/json,则可以
reflectValueQuoted在encoding
/ json /
enpre.go中修改功能
您可能需要关注Array的情况(Slice有一个
fallthrough):
// Inside switch:case reflect.Array: e.WriteByte('[') n := v.Len() for i := 0; i < n; i++ { if i > 0 { e.WriteByte(',') } e.reflectValue(v.Index(i)) } e.WriteByte(']')
我假设您想以相同的方式对待频道。它看起来像这样:
// Inside switch:case reflect.Chan: e.WriteByte('[') i := 0 for { x, ok := v.Recv() if !ok { break } if i > 0 { e.WriteByte(',') } e.reflectValue(x) i++ } e.WriteByte(']')
我对中的频道没有做太多事情
reflect,因此上述内容可能需要其他检查。
如果您确实选择了此方法,则可以随时提交补丁。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)