json iterator介绍

jsoniter的Go语言实现的在Github上宣称的主要特性有两点:首先是快,其次是与标准库完全兼容。暂且不谈benchmark是否客观,在绝大多数的开发应用中,并不需要对性能的极致追求。易用性、稳定性是更为重要的考量。jsoniter可以直接对json数据进行迭代处理,并不需要先定义一个对应的结构体,然后再反序列化。这在网络通信中获取通信结果的局部信息时可能特别有用。例如一个网络请求返回的json数据非常复杂,但是我们只想获取其中的少量信息,使用jsoniter就可以省很多事。例如:

	blob := `
	{
		"code": 0,
		"desc": "ok",
		"result": {
			"id": 1001,
			"nickname": "jobs",
			"cars": [
				{"color": "black", "brand": "Audi", "model": "A6L"},
				{"color": "white", "brand": "Benz", "model": "C200L"}
			]
		}
	}
	`
	log.Println(jsoniter.Get([]byte(blob), "result", "cars", 0, "model").ToString())

jsoniter与std json完全兼容也降低了重构成本。