lua里面如何require一串lua格式的字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua里面如何require一串lua格式的字符串相关的知识,希望对你有一定的参考价值。
大概的意思是我有一大串lua格式的string
local n = "local b = 1"
requit(n)
print(b)
--输出为1
代码如下:
local cjson = require("cjson")
--lua对象到字符串
local obj =
id = 1,
name = "zhangsan",
age = nil,
is_male = false,
hobby = "film", "music", "read"
local str = cjson.encode(obj)
ngx.say(str, "<br/>")
--字符串到lua对象
str = \'"hobby":["film","music","read"],"is_male":false,"name":"zhangsan","id":1,"age":null\'
local obj = cjson.decode(str)
ngx.say(obj.age, "<br/>")
ngx.say(obj.age == nil, "<br/>")
ngx.say(obj.age == cjson.null, "<br/>")
ngx.say(obj.hobby[1], "<br/>")
--循环引用
obj =
id = 1
obj.obj = obj
-- Cannot serialise, excessive nesting
--ngx.say(cjson.encode(obj), "<br/>")
local cjson_safe = require("cjson.safe")
--nil
ngx.say(cjson_safe.encode(obj), "<br/>")
null将会转换为cjson.null;循环引用会抛出异常Cannot serialise, excessive nesting,默认解析嵌套深度是1000,可以通过cjson.encode_max_depth()设置深度提高性能;使用cjson.safe不会抛出异常而是返回nil。
loadstring(str)()
loadstring会返回给你一个函数,执行这个函数相当于把你之前load的函数执行一次
追问因为我的是.lua文件肯定不止一行如果是多行的话还有什么办法可以处理?
追答多行也一样 把所有字符串放在一起loadstring
本回答被提问者采纳以上是关于lua里面如何require一串lua格式的字符串的主要内容,如果未能解决你的问题,请参考以下文章