在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、引言 [root@linux cjson]# pwd /root/software/download/cjson [root@linux cjson]# wget https://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz //当前目录 [root@linux cjson]# pwd /root/software/download/cjson //显示当前目录下的文件和目录 [root@linux cjson]# ls lua-cjson-2.1.0.tar.gz //解压到当前目录 [root@linux cjson]# tar zxvf lua-cjson-2.1.0.tar.gz [-C /usr/local] //... complete!
解压成功后的目录结构:
//当前目录 [root@linux cjson]# pwd /root/software/download/cjson //进入到CJSON的解压根目录 [root@linux cjson]# cd lua-cjson-2.1.0 //进入到根目录,修改Makefile文件 [root@linux lua-cjson-2.1.0]# vim Makefile //当前目录 [root@linux lua-cjson-2.1.0]# pwd /root/software/download/cjson/lua-cjson-2.1.0 //当前目录 [root@linux lua-cjson-2.1.0]# pwd /root/software/download/cjson/lua-cjson-2.1.0 [root@linux lua-cjson-2.1.0]# make //开始编译
//当前目录 [root@linux lua-cjson-2.1.0]# pwd /root/software/download/cjson/lua-cjson-2.1.0 [root@linux lua-cjson-2.1.0]# make install //开始安装 [root@linux program]# pwd /root/application/program //拷贝sjson.so文件到指定目录 [root@linux program]# sudo cp -r cjson/lib/lua/5.1/cjson.so /usr/local/lib/lua/5.3
只需要把cjson.so文件拷贝到【/usr/local/lib/lua/5.3(这个版本具体情况要看具体情况)/】目录下就可以了 //1、从Linux命令行模式进入lua命令行测试安装是否正确 [root@linux lua-cjson-2.1.0]# lua Lua 5.3.4 Copyright (C) 1994-2017 Lua.org PUC-Rio >local cjson=require("cjson") >local cjson2=require "cjson.safe" //以上所有操作没有提示任何错误 //2、我们在Linux命令行下在执行lua命令,执行lua脚本,测试是否安装成功 //05.lua脚本文件的源码 local cjson=require "cjson" local smapleJson=[[{"age":"23","testArray":{"array":[8,9,1,14,15]},"baidu":"www.baidu.com"}]]; local data=cjson.decode(sampleJson) print(data["age"]); print(data["testArray"]["array"][1]) //没有提示任何错误,安装成功
1 //cjsonDemo.lua的源代码如下: 2 3 local cjson = require "cjson" 4 local retTable = {}; --最终产生json的表 5 6 --顺序数值 7 8 local intDatas = {}; 9 intDatas[1] = 100; 10 intDatas[2] = "100"; 11 12 --数组 13 14 local aryDatas = {}; 15 aryDatas[1] = {}; 16 aryDatas[1]["键11"] = "值11"; 17 aryDatas[1]["键12"] = "值12"; 18 aryDatas[2] = {}; 19 aryDatas[2]["键21"] = "值21"; 20 aryDatas[2]["键22"] = "值22"; 21 22 --对Table赋值 23 24 retTable["键1"] = "值1"; 25 retTable[2] = 123; 26 retTable["int_datas"] = intDatas; 27 retTable["aryDatas"] = aryDatas; 28 29 --将表数据编码成json字符串 30 31 local jsonStr = cjson.encode(retTable); 32 print(jsonStr); 33 34 return retTable; 35 36 //以上为Lua源码
//开始执行命令 [root@linux luascript]# pwd /root/application/program/luascript //lua脚本存放的位置 [root@linux luascript]# lua cjsonDemo.lua {"int_datas":[100,"100"],"2":123,"键1":"值1","aryDatas":[{"键12":"值12","键11":"值11"},{"键21":"值21","键22":"值22"}]}
//源码如下: local retTable = {}; --最终产生json的表 --顺序数值 local intDatas = {}; intDatas[1] = 100; intDatas[2] = "100"; --数组 local aryDatas = {}; aryDatas[1] = {}; aryDatas[1]["键11"] = "值11"; aryDatas[1]["键12"] = "值12"; aryDatas[2] = {}; aryDatas[2]["键21"] = "值21"; aryDatas[2]["键22"] = "值22"; --对Table赋值 retTable["键1"] = "值1"; retTable[2] = 123; retTable["int_datas"] = intDatas; retTable["aryDatas"] = aryDatas; return retTable;
using LuaInterface; // 引入的dll using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpPinvokeLuaDemo { class Program { static void Main(string[] args) { // 新建一个Lua解释器,每一个Lua实例都相互独立, 一个global全局域 Lua lua = new Lua(); //--------------------------------------------------- // Lua的索引操作[]可以创建、访问、修改global域 lua["age"] = 20; lua["name"] = "Mr.huang"; string luaCode = "print(\"This is Lua code\")"; lua.DoString(luaCode);//执行lua脚本代码 object[] result=lua.DoFile(@"C:\Users\Administrator\Desktop\Redis\LuaScript\cjsonDemo.lua");//执行lua脚本文件,这里我直接用了绝对定位 double age = (double)lua["age"]; Console.WriteLine("age = {0}", age); Console.WriteLine("width = {0}", lua["width"]); Console.ReadKey(); } } }
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> <supportedRuntime version="v2.0.50727"/> </startup>
天下国家,可均也;爵禄,可辞也;白刃,可蹈也;中庸不可能也
一、引言 [root@linux cjson]# pwd /root/software/download/cjson [root@linux cjson]# wget https://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz //当前目录 [root@linux cjson]# pwd /root/software/download/cjson //显示当前目录下的文件和目录 [root@linux cjson]# ls lua-cjson-2.1.0.tar.gz //解压到当前目录 [root@linux cjson]# tar zxvf lua-cjson-2.1.0.tar.gz [-C /usr/local] //... complete!
解压成功后的目录结构:
//当前目录 [root@linux cjson]# pwd /root/software/download/cjson //进入到CJSON的解压根目录 [root@linux cjson]# cd lua-cjson-2.1.0 //进入到根目录,修改Makefile文件 [root@linux lua-cjson-2.1.0]# vim Makefile //当前目录 [root@linux lua-cjson-2.1.0]# pwd /root/software/download/cjson/lua-cjson-2.1.0 //当前目录 [root@linux lua-cjson-2.1.0]# pwd /root/software/download/cjson/lua-cjson-2.1.0 [root@linux lua-cjson-2.1.0]# make //开始编译
//当前目录 [root@linux lua-cjson-2.1.0]# pwd /root/software/download/cjson/lua-cjson-2.1.0 [root@linux lua-cjson-2.1.0]# make install //开始安装 [root@linux program]# pwd /root/application/program //拷贝sjson.so文件到指定目录 [root@linux program]# sudo cp -r cjson/lib/lua/5.1/cjson.so /usr/local/lib/lua/5.3
只需要把cjson.so文件拷贝到【/usr/local/lib/lua/5.3(这个版本具体情况要看具体情况)/】目录下就可以了 //1、从Linux命令行模式进入lua命令行测试安装是否正确 [root@linux lua-cjson-2.1.0]# lua Lua 5.3.4 Copyright (C) 1994-2017 Lua.org PUC-Rio >local cjson=require("cjson") >local cjson2=require "cjson.safe" //以上所有操作没有提示任何错误 //2、我们在Linux命令行下在执行lua命令,执行lua脚本,测试是否安装成功 //05.lua脚本文件的源码 local cjson=require "cjson" local smapleJson=[[{"age":"23","testArray":{"array":[8,9,1,14,15]},"baidu":"www.baidu.com"}]]; local data=cjson.decode(sampleJson) print(data["age"]); print(data["testArray"]["array"][1]) //没有提示任何错误,安装成功
1 //cjsonDemo.lua的源代码如下: 2 3 local cjson = require "cjson" 4 local retTable = {}; --最终产生json的表 5 6 --顺序数值 7 8 local intDatas = {}; 9 intDatas[1] = 100; 10 intDatas[2] = "100"; 11 12 --数组 13 14 local aryDatas = {}; 15 aryDatas[1] = {}; 16 aryDatas[1]["键11"] = "值11"; 17 aryDatas[1]["键12"] = "值12"; 18 aryDatas[2] = {}; 19 aryDatas[2]["键21"] = "值21"; 20 aryDatas[2]["键22"] = "值22"; 21 22 --对Table赋值 23 24 retTable["键1"] = "值1"; 25 retTable[2] = 123; 26 retTable["int_datas"] = intDatas; 27 retTable["aryDatas"] = aryDatas; 28 29 --将表数据编码成json字符串 30 31 local jsonStr = cjson.encode(retTable); 32 print(jsonStr); 33 34 return retTable; 35 36 //以上为Lua源码
//开始执行命令 [root@linux luascript]# pwd /root/application/program/luascript //lua脚本存放的位置 [root@linux luascript]# lua cjsonDemo.lua {"int_datas":[100,"100"],"2":123,"键1":"值1","aryDatas":[{"键12":"值12","键11":"值11"},{"键21":"值21","键22":"值22"}]}
//源码如下: local retTable = {}; --最终产生json的表 --顺序数值 local intDatas = {}; intDatas[1] = 100; intDatas[2] = "100"; --数组 local aryDatas = {}; aryDatas[1] = {}; aryDatas[1]["键11"] = "值11"; aryDatas[1]["键12"] = "值12"; aryDatas[2] = {}; aryDatas[2]["键21"] = "值21"; aryDatas[2]["键22"] = "值22"; --对Table赋值 retTable["键1"] = "值1"; retTable[2] = 123; retTable["int_datas"] = intDatas; retTable["aryDatas"] = aryDatas; return retTable;
using LuaInterface; // 引入的dll using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpPinvokeLuaDemo { class Program { static void Main(string[] args) { // 新建一个Lua解释器,每一个Lua实例都相互独立, 一个global全局域 Lua lua = new Lua(); //--------------------------------------------------- // Lua的索引操作[]可以创建、访问、修改global域 lua["age"] = 20; lua["name"] = "Mr.huang"; string luaCode = "print(\"This is Lua code\")"; lua.DoString(luaCode);//执行lua脚本代码 object[] result=lua.DoFile(@"C:\Users\Administrator\Desktop\Redis\LuaScript\cjsonDemo.lua");//执行lua脚本文件,这里我直接用了绝对定位 double age = (double)lua["age"]; Console.WriteLine("age = {0}", age); Console.WriteLine("width = {0}", lua["width"]); Console.ReadKey(); } } }
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> <supportedRuntime version="v2.0.50727"/> </startup>
|
请发表评论