Encode and read a boolean JSON field.

json booleans JSON booleans map cleanly to Lua booleans, which can drive ordinary branches.

Boolean Field

enabled
boolean_field.lua
Replay: real traced execution (multi-file project)
local enabled = true
local state = "off"
if enabled then
    state = "on"
end
local json = require("cjson").encode({enabled = enabled, state = state})
local parsedEnabled = require("cjson").decode(json).enabled
print("enabled=" .. tostring(parsedEnabled))
print("state=" .. state)
print("json=" .. json)
local enabled = false
local state = "off"
if enabled then
    state = "on"
end
local json = require("cjson").encode({enabled = enabled, state = state})
local parsedEnabled = require("cjson").decode(json).enabled
print("enabled=" .. tostring(parsedEnabled))
print("state=" .. state)
print("json=" .. json)
  1. enabled ← true, state ← off

    1local enabled→ true = true --@enabled=false2local state→ off = "off"3if enabled then
  2. state ← on

    2local state = "off"3if enabledtrue then4    state→ on = "on"5end
  3. json ← {"state":"on","enabled":true}, parsedEnabled ← true

    5end6local json→ {"state":"on","enabled":true} = require("cjson").encode({enabled = enabledtrue, state = stateon})7local parsedEnabled→ true = require("cjson").decode(json{"state":"on","enabled":true}).enabled8print("enabled=" .. tostring(parsedEnabledtrue))9print("state=" .. stateon)10print("json=" .. json{"state":"on","enabled":true})
    outputenabled=true
    state=on
    json={"state":"on","enabled":true}
  1. enabled ← false, state ← off, json ← {"state":"off","enabled":false}

    1local enabled→ false = false2local state→ off = "off"3if enabled then4    state = "on"5end6local json→ {"state":"off","enabled":false} = require("cjson").encode({enabled = enabledfalse, state = stateoff})7local parsedEnabled→ false = require("cjson").decode(json{"state":"off","enabled":false}).enabled8print("enabled=" .. tostring(parsedEnabledfalse))9print("state=" .. stateoff)10print("json=" .. json{"state":"off","enabled":false})
    outputenabled=false
    state=off
    json={"state":"off","enabled":false}