how to write a json parse tool
2018年5月8日
如何实现一个简单的json数据格式解析器
项目地址: https://github.com/zhiruchen/json-parse
因为平时工作里涉及到对请求和响应数据的json编解码,所以一直想实现一个json数据解析工具。在这里记录一下设计实现过程。
basics
json 数据的值类型包括: 字符串,布尔值,列表,json 对象, 数字
json 数据的键是字符串
json 数据是一个有递归结构的数据结构
json 语法
解析器的组成部分
scanner 负责将读取的json字符串分割为一个个token
parser 解析token并生成一个JSONObject
Scanner
scanner 主要作用是遍历字符串,将一个个字符分组为一个个token.
Token
token 是解析器用来识别并解析为响应的数据结构。
token的结构
1 | type Token struct { |
token 主要分为 普通的token(字符串,数子,大括号等, 还有是内置的标识符(true, false, null)
Parser
parser 解析token 并生成JSONObject, 从json.org上能得知解析的语法基础,解析的顺序。
json 语法
1 | json -> obj | array ; |