我在cjson.lua中发现错误: '<name>' expected near 'local',请问如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在cjson.lua中发现错误: '<name>' expected near 'local',请问如何解决?相关的知识,希望对你有一定的参考价值。

那一行是local isArray = __tostring = function() return "JSON array" end isArray.__index = isArray

参考技术A local isArray = __tostring = function() return "JSON array" end isArray.__index = isArray

这句本身没有问题, 一般出现问题是因为从网上拷贝的代码, 空白的地方可能用了中文全形,
你试改为英文输入, 重新输入一次整句可能就没有问题。
另外,如果你需要打印错误信息, 例如:
print ("isArray=" , isArray); // 111
print ("isArray=" .. isArray); // 222
111 这个方法试可以的, 但是222 就不行, 用 , 分隔可以自动调用后面的 isArray
改为可以打印的显示模式, 使用 .. 则不能自动转换为字符追问

那再请教大师一个问题:JSON = (loadfile "JSON:l")()这句提示出错信息:
>lua -e "io.stdout:setvbuf 'no'" "cjson.lua"
lua: cjson.lua:16: attempt to call a nil value
stack traceback:
cjson.lua:16: in main chunk
[C]: ?

本回答被提问者采纳

cocos2dx 启用cjson

在appDelegate.cpp文件中添加

#if __cplusplus
extern "C" 
    // 加入此代码的目的,防止污染引擎的scripting目录
#include "lua/cjson/lua_cjson.h"
    void register_cjson(lua_State *L)
        lua_getglobal(L, "package");
        lua_getfield(L, -1, "preload");
        lua_pushcfunction(L, luaopen_cjson);
        lua_setfield(L, -2, "cjson");
        lua_pop(L, 2);
    
// extern "C"
#endif

 

 技术图片

 

然后调用register_cjson(L);

 技术图片

 

如果有报错:

lua_cjson.c:1328:13: Static declaration of ‘luaL_setfuncs’ follows non-static declaration

解决方案:去掉static声明

技术图片

 

以上是关于我在cjson.lua中发现错误: '<name>' expected near 'local',请问如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

在 Openresty 中使用 cjson Lua 模块解析缺少字段的 JSON

lua里面如何require一串lua格式的字符串

获取错误 - AttributeError:'module'对象在运行subprocess.run时没有属性'run'([“ls”,“ - l”])

OpenCVmissing ';' before identifier 'PVOID64' (转)

TypeError:无法读取未定义的属性'createContext'

致命错误:在 UITableViewCell 中展开可选值时意外发现 nil