I've got a Lua script that receives a function call in a string. I need to execute that call and retrieve the output as a string in a variable so I can later send it somewhere.
For example, I will receive the string "json.encode('{1:1, 2:3, 5:8}')"
. I'd like to execute it and get a variable with the value ret = json.encode('{1:1, 2:3, 5:8}')
.
I've tried using loadstring in a bunch of different ways, including a way I found in the docs, but I can't get it to work as I want:
> s = "json.encode('{1:1, 2:3, 5:8}')"
> ret = assert(loadstring(s))()
> print(ret)
nil
I know the string is being executed, because if I set s = print(json.encode('{1:1, 2:3, 5:8}'))
I see the output. I just don't know how to get the output in a variable.
Thanks!