cocos2d中Lua --解析json文件

Date.lua

module("Data",package.seeall)
function getItemData(num1,num2)
local itemData = ITEM[num1][num2]
return itemData
end


function getSnailData(num1,num2)
local snailData = SNAIL[num1][num2]
return snailData 
end
--关卡选择的图片
function getChapterBtnData(num)
local chapterBtnData = CHAPTERBTN[num]
return chapterBtnData
end


function writeDocument( str )
local docpath = cc.FileUtils:getInstance():getWritablePath().."data.json"
print("bbbbb%s",docpath)
if io.exists(docpath) == false then
local f = io.open(docpath,"w")
   print("wwwwww:%s",docpath)
   f:write(str)
   f:close()
end
end


function readDocument(  )
local docpath = cc.FileUtils:getInstance():getWritablePath().."data.json"
local str = cc.FileUtils:getInstance():getStringFromFile(docpath)
return str
end

可以看成重置
function writeDocumentTwo( str )
local docpath = cc.FileUtils:getInstance():getWritablePath().."data.json"
local f = assert(io.open(docpath,"w"))
    print("wwwwww:%s",docpath)
    f:write(str)
    f:close()
end




SCENE = {}


SCENE[1] = {}
SCENE[1][1] = {lock = 0, star = 0, num = 6}
SCENE[1][2] = {lock = 1, star = 0, num = 11}
SCENE[1][3] = {lock = 1, star = 0, num = 6}
SCENE[1][4] = {lock = 1, star = 0, num = 12}
SCENE[1][5] = {lock = 1, star = 0, num = 17}
SCENE[1][6] = {lock = 1, star = 0, num = 16}


SCENE[2] = {}
SCENE[2][1] = {lock = 0, star = 0, num = 10}
SCENE[2][2] = {lock = 1, star = 0, num = 11}
SCENE[2][3] = {lock = 1, star = 0, num = 19}
SCENE[2][4] = {lock = 1, star = 0, num = 12}
SCENE[2][5] = {lock = 1, star = 0, num = 12}
SCENE[2][6] = {lock = 1, star = 0, num = 16}


SCENE[3] = {}
SCENE[3][1] = {lock = 0, star = 0, num = 14}
SCENE[3][2] = {lock = 1, star = 0, num = 16}
SCENE[3][3] = {lock = 1, star = 0, num = 11}
SCENE[3][4] = {lock = 1, star = 0, num = 12}
SCENE[3][5] = {lock = 1, star = 0, num = 13}
SCENE[3][6] = {lock = 1, star = 0, num = 13}

--关卡选择按钮
CHAPTERBTN = {}
CHAPTERBTN[1] = {pic = "house1.png", pic2 = "house_lock1.png"}
CHAPTERBTN[2] = {pic = "house2.png", pic2 = "house_lock2.png"}

CHAPTERBTN[3] = {pic = "house3.png", pic2 = "house_lock3.png"}

--解析json文件

将表格数据编码为 JSON 字符串。
格式:
jsonString = json.encode(表格对象)
  Data.writeDocument(json.encode(Data.SCENE))--写入进去

local str = Data.readDocument()--读出来

将 JSON 字符串解码为表格对象。
格式:
table = json.decode(string)
local Table = json.decode(str,1)--解码成 Table
for i=1,#Table[1] do
for k,v  in  pairs (Table[1][i]) do
print(v,k)
end
print(".........................")

end

运行结果:

[LUA-print] 0 star

[LUA-print] 6 num

[LUA-print] 0 lock

[LUA-print] .........................

[LUA-print] 0 star

[LUA-print] 11 num

[LUA-print] 1 lock

[LUA-print] .........................

[LUA-print] 0 star

[LUA-print] 6 num

[LUA-print] 1 lock

[LUA-print] .........................

[LUA-print] 0 star

[LUA-print] 12 num

[LUA-print] 1 lock

[LUA-print] .........................

[LUA-print] 0 star

[LUA-print] 17 num

[LUA-print] 1 lock

[LUA-print] .........................

[LUA-print] 0 star

[LUA-print] 16 num

[LUA-print] 1 lock

[LUA-print] .........................


修改

local str = Data.readDocument()
local myTable = json.decode(str, 1)
myTable[self._Chapter][self._Case].star = self.starNum
if self._Case < 6 then
myTable[self._Chapter][self._Case+1].lock = 0
end
Data.writeDocumentTwo(json.encode(myTable))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值