前言
JSONJSONObjectstructmap
JSONstruct
于是我也打算增加类似的功能,使用方式如下:
最后还加上了一个四则运算的功能。
面向对象的方式操作 JSON
tidwallAPI
key.[index][]
JSON
这样的语法使用个人觉得还是满符合直觉的,相信对使用者来说也比较简单。
tidwallResult
Map()/Array()JSONmapJSONObject
实现原理
在实现之前需要先定义一个基本语法,主要支持以下四种用法:
keyGet(json,"name")Get(json,"obj1.obj2.obj3.name")Get(json,"obj.array[0]")Get(json,"obj.array[0].obj2.obj3[1].name")
JSON
JSONJSONObject
tokentokenJSONObject
tokenJSONObject
我们以这段查询代码为例:
token
]
接着我们遍历语法的 token。如下图所示:
tokenKey
.[]JSONObject
obj_list[1.]JSONObject
ArrayindexEndArrayEndArray
有兴趣的可以看下解析过程的源码:
https://github.com/crossoverJie/xjson/blob/cfbca51cc9bc0c77e6cb9c9ad3f964b2054b3826/json.go#L46
对 JSON 做四则运算
JSON(int、float)