Sample code for 30+ languages & platforms
Lua Requires Chilkat v9.5.0.92+

ITIDA Create Canonical JSON

See more Egypt ITIDA Examples

Demonstrates creating the canonical (ITIDA) version of a JSON document. The document in the example is the one at https://sdk.invoicing.eta.gov.eg/files/one-doc.json

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local sb = chilkat.StringBuilder.new()

-- This is the file at https://sdk.invoicing.eta.gov.eg/files/one-doc.json
local success = sb:load_file("qa_data/itida/sdk.invoicing.eta.gov.eg/files/one-doc.json", "utf-8")
if not success then
    print("Failed to load input file.")
    return
end

-- Convert the contents of sb to the ITIDA canonical form.
-- Always pass utf-8 for the 2nd arg.
sb:encode("itida", "utf-8")

local canonical = sb:get_as_string()

print(canonical)

-- Output:
-- "SomeValue""DELIVERY""APPROACH""SomeValue""PACKAGING""SomeValue""DATEVALIDITY""2020-09-28T09:30:10Z"........."TOTALAMOUNT""5191.50""EXTRADISCOUNTAMOUNT""5.00""TOTALITEMSDISCOUNTAMOUNT""14.00"

-- Let's verify we got the correct result.
local sbExpected = chilkat.StringBuilder.new()
success = sbExpected:load_file("qa_data/itida/sdk.invoicing.eta.gov.eg/files/one-doc-serialized.json.txt", "utf-8")
if not success then
    print("Failed to expected output file.")
    return
end

-- Compare our computed canonical string with the expected result.
if sb:contents_equal_sb(sbExpected, true) then
    print("The computed canonical result is correct.")
else
    print("The computed canonical result is NOT correct.")
end