How to encode decode JSON objects in Redis Lua script?


I am passing a JSON string to Lua script as an arg, I want to manuplate the JSON object to add some data and push to a queue.
How can I encode & decode the JSON objects in Redis Lua script?

2 Answers

3 years ago by

Redis Lua scrip comes with the following packages by default

  • base
  • table
  • string
  • math
  • struct
  • cjson
  • cmsgpack
  • bitop

we can use the cjson to do the marshalling and unmarshalling of JSON objects.
Following code shows you how to do that

local input = KEYS[1]
local json = cjson.decode(tostring(input))

-- work with json 
json.foo = 1

local output = cjson.encode(json);
return output
3 years ago by Karthik Divi

{"version":3,"data":"IegY21/091yYehMIQUAncHYdvofPdLXJnrgURBfL7MqLU4MJosHGW+2njjaFFX1QDQVVMCm5RbAfKTRXclFRQWjMWPAWslXgGbYGszw4hdFbHkEQEIIl/dncWUTjfJ8zTT88rqGXUnBouaRQy64OP2l8fafhVLx1nPgLyyAmjEGuGsOicqZvfHlFn+KYdPvmA7JoUEac9XuVeqj1vytkEnXi6J6qMJxrKovzDVUIdr1erGLK+77vePf8ODwHeGqfiIvnJBT8qyN356PK47vwpdnLMiCgHVv+i/54Uw40Au2snGkypAsjoQmGmZtm9ILSyAdyTcNmN0mfvGG0/v0mnYmnWaZ4dRlOt2nuiZoIp1/EMq8kfY9rWLvWTlk8taPfjV6GX4ooGuQDWOjNZYLcvDTIyX650tgdQb+tNe2B/ChgXJ1gwOCZm7vIe1F7w3l6V2dqFFSlyHL5TlXlCtNLpEoXIwUVG0NHrPTrL2jOlGG9RiIBuW1aPd8ZieGdCSiVHotqzRn+wM+U9xZ3PXTtqYRFey6od+47rxUy9G8IPR2dLVp18xGesoRFFiTChBh1A/rCY1hv3i8Q3zEscd/5QoNk5sMP+rrWvKwf+wNb1buIM7lJG0VWJBg33gtD/QtAsf+ClNaE0z7HPk/GfuJYBcR/4QiQ7S3creBnYJ2jjdCRmDWRlnFb6UzU1k7Yq3ieEM3kN/yx+zBk9BCMWVnIuGMjOX04OFyvi96eldzavCH397+YV+FaHHBWfF8/I8SJjplPdeQghS8KbRGWouPkkER2sDTRqVK4itbrNZm3PCP59GA8IOI0EiNQnW89LuHuHej6Czq5dyi/RnKBK2Cmk3RlTI0uLxbjPbU4M4FUVZZNDZs18KUx2QRuFULcllayKzb2jG/ReCyvAAC9nkir8To/6upAomcGSIPkJ4mwfIlw5FM5ru4oil16byKus8sm67jLhuWVgdrun0MEvf6Vo9jdq2+BbTGiS2YAIKGwkqy+QbHO8cO/wUwDWhs7Nx3xtqXx8Fd0Pt6JMfce+hDtvsNXE2r3RbpA7f8G2l36AeUWxGThCTELZfGYTAyuWLBdkJx/GX+xyPd9+e3nlLoxBhQUnXh2Y4DDJPCPTzWjyDWlKZQeWtV3rbKRuRkES2Lg"}

1 year ago by mb7766