Go 每日一库之 gabs

2020-09-07
阅读 12 分钟
5.7k
JSON 是一种非常流行的数据交换格式。每种编程语言都有很多操作 JSON 的库,标准库、第三方库都有。Go 语言中标准库内置了 JSON 操作库encoding/json。我们之前也介绍过专门用于查询 JSON 串的库gjson和专门用于修改 JSON 串的库sjson,还有一个非常方便的操作 JSON 数据的命令行工具jj。今天我们再介绍一个 JSON 工具库...

Go 每日一库之 jsonrpc

2020-05-11
阅读 7 分钟
3.4k
在上一篇文章中我们介绍了 Go 标准库net/rpc的用法。在默认情况下,rpc库内部使用gob格式传输数据。我们仿造gob的编解码器实现了一个json格式的。实际上标准库net/rpc/jsonrcp中已有实现。本文是对上一篇文章的补充。

Go 每日一库之 gentleman

2020-04-08
阅读 8 分钟
3.2k
gentleman是一个功能齐全、插件驱动的 HTTP 客户端。gentleman以扩展性为原则,可以基于内置的或第三方插件创建具有丰富特性的、可复用的 HTTP 客户端。相比标准库net/http,gentleman更灵活、易用。

Go 每日一库之 jj

2020-03-27
阅读 6 分钟
3.2k
在前面两篇文章中,我们分别介绍了快速读取 JSON 值的库gjson和快速设置 JSON 值的库sjson。今天我们介绍它们的作者tidwall的一个基于gjson和sjson的非常实用的命令行工具jj。它是使用 Go 编写的快速读取和设置 JSON 值的命令行程序。

Go 每日一库之 sjson

2020-03-25
阅读 4 分钟
3k
上面代码通过sjson.Set()将 JSON 串中name.last对应的值设置为dajun。与gjson一样,sjson也通过键路径指定具体的位置,键路径即为一系列以.分隔的键。sjson支持的键路径语法是gjson的一个子集,具体键路径的语法可以参见上一篇文章。sjson.Set()返回设置之后的 JSON 串。最终程序输出:

Go 每日一库之 gjson

2020-03-24
阅读 9 分钟
3.5k
之前我们介绍过gojsonq,可以方便地从一个 JSON 串中读取值。同时它也支持各种查询、汇总统计等功能。今天我们再介绍一个类似的库gjson。在上一篇文章Go 每日一库之 buntdb中我们介绍过 JSON 索引,内部实现其实就是使用gjson这个库。gjson实际上是get + json的缩写,用于读取 JSON 串,同样的还有一个sjson(set + json...

高效生成JSON串——json-gen

2019-10-08
阅读 5 分钟
1.8k
游戏服务端的很多操作(包括玩家的和非玩家的)需要传给公司中台收集汇总,根据运营的需求分析数据。中台那边要求传过去的数据为 JSON 格式。一开始我们使用 golang 标准库中的encoding/json,发现性能不够理想(因为序列化使用了反射,涉及多次内存分配)。由于数据原始格式都是map[string]interface{},且需要自己一个...