向 Lua 表添加空值
2021-11-1 14:49:48
收藏:0
阅读:399
评论:1
我想通过 C Lua 库发送一个 Lua 表。对于值,这很好用,但当插入空时我遇到了麻烦。插入空会从收到的 JSON 数据中删除数据。
发送一个值很好用:
lua_pushnumber(&luaState, 2.5);
lua_rawseti(&luaState, -2, 1);
当插入 Nil 而不是数字时,索引和 Nil 都没有被接收。
lua_pushnil(&luaState);
lua_rawseti(&luaState, -2, 1);
显然,Lua 中的表是一个数组,它不仅接受数字作为索引,还接受字符串或语言中的任何其他值(除了空值)。
我在表中加入了多个数字和空字段,并且所有空字段均消失,包括它们的索引值。即使最后一个值是数字。
输入以下代码:
lua_pushnumber(&luaState, 0);
lua_rawseti(&luaState, -2, 0);
lua_pushnil(&luaState);
lua_rawseti(&luaState, -2, 1);
lua_pushnumber(&luaState, 2);
lua_rawseti(&luaState, -2, 2);
我得到了以下结果:{"0":0,"2":2}
,然而我想要的结果是:{"0":0,"1":null,"2":2}
添加一个字符串值作为空值是不起作用的,因为它会加上空引号。{} 最终变成了 0。
如何在结果中获取一个空的索引?
原文链接 https://stackoverflow.com/questions/69796054
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
为什么会收到空值?
{[1] = nil}
是一个空表。因此,您不能在json字符串中期望任何表字段。我猜您希望得到
[null]
。如果你想要看到类似
[null, 2.5]
的输出,请创建一个像{nil, 2.5}
的表。空表有无限的空值。您将理解明确序列化将是困难的。这假设您正在使用dkjson。其他Json库可能会导致空值的其他表示。