序列化后的json字符串的键的次序与table中元素的次序不一样.比如
local t = {
a = 1,
b = "abc",
c = {
1,2,3,4
},
d = {
x = false,
j = 111111
},
aaaa = 6666,
}
则序列化json字符串为 {"aaaa":6666,"b":"abc","a":1,"d":{"x":false,"j":111111},"c":[1,2,3,4]}
输出结果:
[2021-12-30 21:51:36.609] I/main auth ok 680845464633388597DE air101
[2021-12-30 21:51:36.612] I/main LuatOS@air101 core V0007 bsp V0006
[2021-12-30 21:51:36.612] I/main ROM Build: Dec 16 2021 09:06:12
[2021-12-30 21:51:36.612] I/fs Using LuaDB as script zone format 081E0000
[2021-12-30 21:51:36.612] D/main loadlibs luavm 180208 10176 10632
[2021-12-30 21:51:36.612] D/main loadlibs sys 12288 5248 5248
[2021-12-30 21:51:36.641] I/user.main json demo
[2021-12-30 21:51:36.641] nil
[2021-12-30 21:51:36.644] {"aaaa":6666,"b":"abc","a":1,"d":{"x":false,"j":111111},"c":[1,2,3,4]}
[2021-12-30 21:51:36.644] 1.000000 abc false
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "jsondemo"
VERSION = "1.0.0"
-- 引入必要的库文件(lua编写), 内部库不需要require
local sys = require "sys"
log.info("main", "json demo")
print(json.null)
local t = {
a = 1,
b = "abc",
c = {
1,2,3,4
},
d = {
x = false,
j = 111111
},
aaaa = 6666,
}
local s = json.encode(t)
local st = json.decode(s)
print(s)
print(st.a,st.b,st.d.x)
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!