OpenResty 使用 cjson 操作 JSON 数据
OpenResty Lua JSON About 1,167 words项目说明
OpenResty
中的cjson
库可以完成JSON
数据的编码解码等工作。
cjson
有两个模块:cjson
和cjson.safe
,前者在解析失败后会抛出异常,而后者则返回nil
。
文档地址:https://github.com/openresty/lua-cjson
代码示例
编码
将table
序列化为字符串
local json = require "cjson.safe"
json.encode({
code = 0,
msg = "请求成功"
})
输出json
{
"code":0,
"msg":"请求成功"
}
解码
将字符串转换为table
local json = require "cjson.safe"
json.decode([[{"code":0,"msg":"请求成功"}]])
输出table
{
code = 0,
msg = "请求成功"
}
空table
encode_empty_table_as_object
:默认为true
,默认会将空的table
对象序列化为JSON
对象。
local json = require "cjson"
json.encode({
foo = "bar",
some_object = {}
})
输出json
{
"some_object": {},
"foo": "bar"
}
JSON
数组
json.empty_array
:序列化空数组
local json = require "cjson"
json.encode({
foo = "bar",
some_object = {},
some_array = json.empty_array
})
输出json
{
"some_object": {},
"foo": "bar",
"some_array": []
}
其他方法
array_mt
:将table
序列化为JSON
数组empty_array_mt
:使json.encode()
(不传任何参数),序列化为JSON
数组decode_array_with_array_mt
:解码为一个数组encode_number_precision
:设置数字的精确度,最多16
个字符encode_keep_ buffer
:复用缓存提高性能,默认是true
encode_max_depth
:编码的深度,默认是1000
decode_max_depth
:解码的深度,默认是1000
开源案例
Views: 8,487 · Posted: 2020-03-09
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...