cjson中的稀疏数组encode
来源:互联网 发布:傅园慧网络直播完整版 编辑:程序博客网 时间:2024/05/18 02:19
经过反馈发现服务器报了个错:
Cannot serialise table: excessively sparse array
lua中的cjson扩展一直是比较好用的json处理扩展,但是在处理数字索引时对于索引下标不连续的悉数数组确有一些特殊的处理方式。
在默认情况下只要不连续的数量少于10就会被null填补上,但最大索引大于10或最大索引大于数组数量一倍时就会抛出“Cannot serialise table: excessively
这是由于cjson处理稀疏数组时有一个安全处理的条件具体可以查看lua-cjson的文档3.11
通过cjson.encode_sparse_array()可以查看到当前的对应配置值
例如,默认情况下:
print(cjson.encode_sparse_array())
输出:
false 2 10
这里返回的三个参数分别表示为:极度稀疏数组(excessively sparse array)是否转为字符串索引,最大索引号与元素数量的安全比例,超出安全比例时最大索引值上限。
了解了这些后就可以按需要来设置相关值,比如允许字符串索引时:
- cjson.encode_sparse_array(true)
- print(cjson.encode({[1000]="data"}))
将输出:
{"1000":"data"}
而如果将比例设为0:
- cjson.encode_sparse_array(false, 0)
- print(cjson.encode({[11]="data"}))
- 将输出:[null,null,null,null,null,null,null,null,null,null,"data"]
正确的设置参数后将避免excessively sparse array异常出现的问题
阅读全文
0 0
- cjson中的稀疏数组encode
- cjson中的稀疏数组encode
- Lua-cjson -> require(“cjson”) successful, then errors when calling cjson.encode
- cjson数组如何解析
- CJSON中数组解析
- 稀疏数组
- 稀疏数组
- javascript中的稀疏数组(sparse array)和密集数组
- javascript中的稀疏数组(sparse array)和密集数组
- 使用Lua CJSON库进行encode与decode操作
- 稀疏数组或稀疏矩阵
- qRCodeEncoder.Encode 数组越界
- cJSON
- cJSON
- cJSON
- cjson
- cJSON
- cJSON
- ios command
- 智能音箱
- 机房收费系统之添加删除用户
- NPDP认证 考试费用 国内外有别啊!
- 蓝桥杯ALGO-87字串统计
- cjson中的稀疏数组encode
- 2017年度总结
- matplotlib——sin,cos
- System.getProperties()系統属性
- Ubuntu16.04下Sublime Text3安装Emmet等插件
- NetBeans 运行java web项目报错 build-impl.xml:1045: 尚未部署该模块
- 【React】React实现手风琴效果
- 中式Dao开源框架(MicroDao)
- $().tab() bootStrap中Tab页签切换