Lua Requires Chilkat v11.0.0+
Lua
Insert JSON Array into another JSON Object
See more JSON Examples
Demonstrates how to insert a JSON array into a JSON object.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- Imagine we have two separate JSON objects.
local jsonA = chilkat.JsonObject.new()
jsonA:update_string("ciphertext", "encryptedData")
jsonA:update_int("status", 200)
jsonA:update_string("error", "errorMsg")
jsonA.emit_compact = false
print(jsonA:emit())
-- jsonA contains:
-- {
-- "ciphertext": "encryptedData",
-- "status": 200,
-- "error": "errorMsg"
-- }
local jsonB = chilkat.JsonObject.new()
jsonB:update_string("users[0].role", "Surgeon")
jsonB:update_new_array("users[0].sub_roles")
jsonB:update_bool("users[0].viewable_for_sharing", true)
jsonB:update_int("users[0].eula_create_date", 123)
jsonB:update_string("users[1].role", "Support")
jsonB:update_string("users[1].sub_roles[0]", "Tech")
jsonB:update_string("users[1].sub_roles[1]", "Service")
jsonB:update_bool("users[1].viewable_for_sharing", true)
jsonB:update_int("users[1].eula_create_date", 123)
jsonB.emit_compact = false
print(jsonB:emit())
-- jsonB contains:
-- {
-- "users": [
-- {
-- "role": "Surgeon",
-- "sub_roles": [],
-- "viewable_for_sharing": true,
-- "eula_create_date": 1649108922482
-- },
-- {
-- "role": "Support",
-- "sub_roles": [
-- "Tech",
-- "Service"
-- ],
-- "viewable_for_sharing": true,
-- "eula_create_date": 1649108951523
-- }
-- ]
-- }
-- Let's say we want to insert jsonB into jsonA to get this:
-- {
-- "ciphertext": "encryptedData",
-- "status": 200,
-- "error": "errorMsg",
-- "users": [
-- {
-- "role": "Surgeon",
-- "sub_roles": [],
-- "viewable_for_sharing": true,
-- "eula_create_date": 1649108922482
-- },
-- {
-- "role": "Support",
-- "sub_roles": [
-- "Tech",
-- "Service"
-- ],
-- "viewable_for_sharing": true,
-- "eula_create_date": 1649108951523
-- }
-- ]
-- }
-- The destination is the empty "users" array, the source is the populated "users" array in jsonB.
local jsonUsersDest = chilkat.JsonArray.new()
jsonA:append_array2("users", jsonUsersDest)
local jsonUsersSrc = chilkat.JsonArray.new()
jsonB:array_of2("users", jsonUsersSrc)
-- Copy the array items from source to dest
jsonUsersDest:append_array_items(jsonUsersSrc)
print(jsonA:emit())
-- The end result is this:
-- {
-- "ciphertext": "encryptedData",
-- "status": 200,
-- "error": "errorMsg",
-- "users": [
-- {
-- "role": "Surgeon",
-- "sub_roles": [
-- ],
-- "viewable_for_sharing": true,
-- "eula_create_date": 123
-- },
-- {
-- "role": "Support",
-- "sub_roles": [
-- "Tech",
-- "Service"
-- ],
-- "viewable_for_sharing": true,
-- "eula_create_date": 123
-- }
-- ]
-- }