lua 数据以table表的形式存储

  出处:http://blog.sina.com.cn/s/blog_991afe570101rkfh.html

  感谢,原文作者的无私奉献!

实现思路:

       table表 ------> 转为字符串(这里利用json库)------->存储--------->读取

达成目的:

  • 解决字符串拼接问题

  • 用最简单办法将table表存入文件,方便游戏存档、游戏关卡等等

  •  

第一步:将table表转为json格式的字符串

导入头文件

--2.2.5的quick版本已经在框架载入时完成了json模块的初始化,所以这里就不需要做导入头文件的操作 
--local json = require("framework.shared.json")


创建一个表格

 local t = {}               
 t.test = "OKOK"
 t.net = "okok"
 t.inner = {}
 t.inner.test = "OKOK8888"
 
 --主要使用以下两个方法进行实现
 local wirtjson =json.encode(t)--转换成json格式
 local readjson =json.decode(wirtjson)--转成原来存储前的格式

注意:以下这两个方法都可以获取到当前电脑上工程的根目录LUA学习笔记-----数据以table表的形式存储

1,device.writablePath  

2device.cachePath  

第二步:写入文件,进行存储并读取

 第一种方法:lua io 库     

把文件保存到当前工程根目录下:

local test = assert(io.open(device.writablePath .. "/formation.lua", "w"))
test:write(wirtjson)
test:close()

读取整个文件:

 local test = io.open(device.writablePath .. "/formation.lua", "r")
 local readjson= test:read("*a")
 local  table =json.decode(readjson)
 test:close()

 

第二种方法:CCUserDefault

把文件保存到当前工程根目录下:

CCUserDefault:sharedUserDefault():setStringForKey("SaveFightArray1", wirtjson)
CCUserDefault:sharedUserDefault():flush()

读取整个文件:

local ecord1 = CCUserDefault:sharedUserDefault():getStringForKey("SaveFightArray1")
local table =json.decode(record1)

你可能感兴趣的:(json,lua,Quick,数据保存)