Sample code for 30+ languages & platforms
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

Lua
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