esp8266学习笔记⑩:sjson模块

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表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值