esp8266学习笔记⑩:sjson模块

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42573320/article/details/86681168

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

展开阅读全文

没有更多推荐了,返回首页