ffjson 更快捷式 JSON 序列操作 ffjson

polaris • 2475 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
ffjson 为 Go 结构产生  MarshalJSON 和  UnmarshalJSON 功能 。新 生成的 功能,减轻了进行序列化时对 运行反射的依赖,速度比之前更快 2 至3倍。 在  ffjson  不能识别 涉及 类型 的情况下,它会回退到  encoding/json,这意味着  ffjson 是安全替代原件。 通过使用 ffjson,您的  JSON 序列化 只会越来越快,因为没有额外代码 更改。 当你改变  struct 时,你需要重新运行 `ffjson`  ( 或将它作为编译工具的一部分)。 ### 入门: 如果 myfile.go 包含结构类型,你想要更快,假设 GOPATH 被设置为现有项目(这意味着在这个特殊的例子,如果 myfile.go 是在 MyProject 目录的一个合理值,该项应在`$GOPATH/src/myproject` ) ,你可以运行: <pre class="brush:java;toolbar: true; auto-links: false;">go get -u github.com/pquerna/ffjson ffjson myfile.go git add myfile_ffjson.go</pre> ### 性能: * `MarshalJSON` is  2x to 3x  faster than `encoding/json`. * `UnmarshalJSON` is  2x to 3x  faster than `encoding/json`. ### 特点: * 支持解组( Unmarshal Support):从  v0.9版本之后,开始支持散集结构。 * 直接替代原件(Drop in Replacement ):因 ffjson 执行的接口已被 encoding/json 定义,用户使用的性能增强。 * 支持所有类型:`ffjson`  适用于大多数 Go 的类型——有任何类型路径不支持的话,他将自动会退到  encoding/json,这意味着所有的工作都要在 box 外工作,如果不是,打开一个issue 。 * ffjson 跳跃:如果你想  ffjson 忽略一个结构,添加  ffjson , 跳过你想忽略的部分,然后重新串连。 * 拓展测试:包含广泛的测试套件,适合与  JSON parser 相对的模糊测试。
授权协议:
Apache
开发语言:
Google Go 查看源码»
操作系统:
跨平台
2475 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传