Documentation
¶
Overview ¶
Package leptjson 实现了一个轻量级的JSON解析器 支持解析以下JSON值类型: - null - true - false - number - string - array - object
使用示例:
v := Value{}
if err := Parse(&v, "null"); err != PARSE_OK {
// 处理错误
}
if GetType(&v) == NULL {
// 处理null值
}
特殊情况处理: 1. null值解析:
- 必须完全匹配"null"字符串
- 大小写敏感,如"NULL"、"Null"等都是非法的
- 不能包含额外的空白字符
2. true值解析:
- 必须完全匹配"true"字符串
- 大小写敏感,如"TRUE"、"True"等都是非法的
- 不能包含额外的空白字符
3. false值解析:
- 必须完全匹配"false"字符串
- 大小写敏感,如"FALSE"、"False"等都是非法的
- 不能包含额外的空白字符
4. 空白字符处理:
- 支持空格、制表符(\t)、换行符(\n)和回车符(\r)
- 空白字符可以出现在JSON值的任意位置
- 多个连续的空白字符是合法的
5. 错误处理:
- PARSE_EXPECT_VALUE: 输入为空或只包含空白字符
- PARSE_INVALID_VALUE: 输入格式不正确
- PARSE_ROOT_NOT_SINGULAR: 输入包含多个值
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ParseError ¶
type ParseError int
ParseError 表示解析过程中可能出现的错误
const ( PARSE_OK ParseError = iota // 解析成功 PARSE_EXPECT_VALUE // 期望一个值 PARSE_INVALID_VALUE // 无效的值 PARSE_ROOT_NOT_SINGULAR // 根节点不唯一 )
解析错误常量
func Parse ¶
func Parse(v *Value, json string) ParseError
Parse 解析JSON字符串 参数:
- v: 用于存储解析结果的Value指针
- json: 要解析的JSON字符串
返回值:
- ParseError: 解析结果,PARSE_OK表示成功
注意:
- 解析前会重置Value对象
- 解析失败时会设置Value类型为NULL
Example (Error) ¶
示例 - 错误处理
v := Value{}
err := Parse(&v, "invalid")
fmt.Println(err)
Output: 无效的值
Example (False) ¶
示例 - 解析false值
v := Value{}
Parse(&v, "false")
fmt.Println(v.String())
Output: false
Example (Null) ¶
示例 - 解析null值
v := Value{}
Parse(&v, "null")
fmt.Println(v.String())
Output: null
Example (True) ¶
示例 - 解析true值
v := Value{}
Parse(&v, "true")
fmt.Println(v.String())
Output: true
type Value ¶
Value 表示一个JSON值 字段说明: - Type: 值的类型 - Num: 数值(当Type为NUMBER时使用) - Str: 字符串值(当Type为STRING时使用) - Array: 数组值(当Type为ARRAY时使用)
Click to show internal directories.
Click to hide internal directories.