Lua Requires Chilkat v9.5.0.92+
Lua
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.jsonChilkat Lua Downloads
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