[cocos2dx_Lua]3.10版本使用cjson

发表于2018-05-11
评论0 2k浏览
Lua CJSON是Lua语言提供高性能的JSON解析器和编码器,其性能比纯Lua库要高10到20倍。cocos2dx lua 3.10 默认目录中包含cjson文件(目录:/frameworks/cocos2d-x/external/lua),但是没有使用。而是用的json.lua进行解析json。效率低下,json字符串稍微大点,进行decode的时候就非常卡。

1.首先将cjson加入到工程

2.修改lua_extensions.h文件

把cjson加入到package.preload表中,在lua层使用:
---json是全局变量与string一个级别,可以通过打印 package.loaded 来看到  
---不需要再require("json"),require("json")是多余的,require("json")与json地址是相同的  
---当全局变量json被赋值时,可以通过require("json")来找回  
function m.requireJson()  
    if package.preload["cjson"] then  
        json = require("cjson")  
    end  
end  
m.requireJson()  

3.android需要修改mk文件,修改目录在自己工程proj.android下的jni文件夹下的android.mk文件
把源文件编入到库中,需要把cjson下的所有源文件到包含进去。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引