注
:sjson
在原先版本中又叫做cjson
,编码解析json
sjson主要函数
名称 | 功能 |
---|---|
sjson.encoder() | 创建一个编码器对象,可以将Lua对象转换为JSON编码的字符串。 |
sjson.encode() | 将Lua表编码为JSON字符串。 |
sjson.decoder() | 使解码器对象可以将JSON编码的字符串解析为Lua对象。 |
sjson.decode() | 将JSON字符串解码为Lua表。 |
注
:由于嵌套表可能需要大量内存进行编码。要避免内存不足错误,请使用pcall() 流媒体接口
函数详解
sjson.encoder()
语法:sjson.encoder(table [, opts])
参数:
table
:要编码的数据
opts
:选择一个可选的选项表。 可能的条目是depth
(编码表所需的最大编码深度。默认为20)和(要视为NULL的字符串值)
返回值:一个sjson.encoder()
的对象
注
:对所建立的编码对象
进行读取
也完成编码的数据时,使用encoder:read(size)
。
参数size
为要返回的字节数的可选值。默认为1024。
返回的是不超过
所设置的size
字节大小的字符串,如果编码完成并返回所有数据,则为nil
。
sjson.encode()
语法:sjson.encode (table [, opts])
参数:
table
:要编码的数据
opts
:选择一个可选的选项表。 可能的条目是depth
(编码表所需的最大编码深度。默认为20)和(要视为NULL的字符串值)
返回值:JSON字符串
sjson.decoder()
语法:sjson.decode ( opts)
参数:
opts
:选择一个可选的选项表。 可能的条目是depth
(编码表所需的最大编码深度。默认为20)和(要视为NULL的字符串值)
返回值:一个sjson.decoder()
的对象
注
:对所建立的解码对象
进行写入
新的需要解码的数据时,使用decoder:write(string)
参数string
为下一段的JSON编码数据。
返回值为如果解码尚未完成,则返回构造的Lua对象或nil
。如果在此解码过程中出现解析错误,则抛出一个错误并中止解析。不能再次使用该对象
注
:获去已解码的Lua对象,或者在解码尚未完成时引发的错误时,使用decoder:result()
sjson.decode()
语法:sjson.decode (str [, opts])
参数:
str
:JSON 解码的字符串
opts
:选择一个可选的选项表。 可能的条目是depth
(编码表所需的最大编码深度。默认为20)和(要视为NULL的字符串值)
返回值:JSON数据的Lua表示