cjson是一個(gè)輕量級(jí)的JSON解析器和生成器,它可以方便地將JSON格式的數(shù)據(jù)轉(zhuǎn)換成Lua的table,并把Lua的table轉(zhuǎn)換成JSON格式的數(shù)據(jù)。
在使用cjson打開JSON文件時(shí),需要關(guān)注以下幾個(gè)方面:
-- 首先需要導(dǎo)入cjson庫 local cjson = require "cjson" -- 讀取JSON文件內(nèi)容 local file = io.open("data.json", "r") local content = file:read("*all") file:close() -- 把JSON格式的數(shù)據(jù)轉(zhuǎn)換成Lua的table local data = cjson.decode(content) -- 遍歷Lua的table,取出需要的數(shù)據(jù) for k, v in pairs(data) do print(k, v) end
上述代碼中,我們首先導(dǎo)入了cjson庫。然后以只讀方式讀取了名為data.json的JSON文件,將文件的內(nèi)容存入變量content中,并關(guān)閉文件句柄。接著使用cjson.decode()函數(shù)將JSON格式的數(shù)據(jù)轉(zhuǎn)換成Lua的table,并且將轉(zhuǎn)換后的table存入變量data中。最后使用for循環(huán)遍歷data表,輸出其中的數(shù)據(jù)。
需要注意的是,如果文件內(nèi)容不是合法的JSON格式,cjson.decode()函數(shù)將會(huì)返回nil,因此在讀取文件之前,應(yīng)該確保這個(gè)文件的內(nèi)容是合法的JSON格式。