Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.0.0+

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

Lua
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
--     }
--   ]
-- }