Lua
Lua
Check if Integer Exists at JSON Path
Demonstrates how to get an integer value at a JSON path, and how to check to see if it exists.Chilkat Lua Downloads
local chilkat = require("chilkat")
local success = false
local json = chilkat.JsonObject.new()
-- First build simple JSON..
json:update_int("test.abc", 100)
json.emit_compact = false
print(json:emit())
-- This is our JSON:
-- {
-- "test": {
-- "abc": 100,
-- }
-- }
local path = "test.notHere"
-- The call to IntOf will return 0, because it's not present.
-- But how do we know if it really was present, and the value was truly 0?
local val = json:int_of(path)
print("val = " .. val)
-- We cannot use LastMethodSuccess because LastMethodSuccess only applies
-- to methods that:
-- - return a string
-- - return a new Chilkat object, binary bytes, or a date/time.
-- - returns a boolean status where true = success and false = failed.
-- - returns an integer where failure is defined by a return value less than zero.
-- The IntOf method fits none of these requirements, and therefore the LastMethodSuccess
-- is not a valid indicator..
local wasFound = json.last_method_success
print("wasFound = " .. tostring(wasFound) .. " (not a valid indicator)")
-- Instead, if the returned value is 0, we can double-check to see if the member was truly there..
if val == 0 then
wasFound = json:has_member(path)
print("wasFound = " .. tostring(wasFound))
if wasFound then
print("The value was present and is 0.")
else
print("no member is present at test.notHere")
end
else
print("val = " .. val)
end
-- Alternatively, you could check to see if the member exists beforehand..
if json:has_member(path) then
print("val = " .. json:int_of(path))
else
print("no member at " .. path)
end