Sample code for 30+ languages & platforms
Perl

Insert JSON Array into another JSON Object

See more JSON Examples

Demonstrates how to insert a JSON array into a JSON object.

Chilkat Perl Downloads

Perl
use chilkat();

# Imagine we have two separate JSON objects.
$jsonA = chilkat::CkJsonObject->new();
$jsonA->UpdateString("ciphertext","encryptedData");
$jsonA->UpdateInt("status",200);
$jsonA->UpdateString("error","errorMsg");

$jsonA->put_EmitCompact(0);
print $jsonA->emit() . "\r\n";

# jsonA contains:

# {
#   "ciphertext": "encryptedData",
#   "status": 200,
#   "error": "errorMsg"
# }

$jsonB = chilkat::CkJsonObject->new();
$jsonB->UpdateString("users[0].role","Surgeon");
$jsonB->UpdateNewArray("users[0].sub_roles");
$jsonB->UpdateBool("users[0].viewable_for_sharing",1);
$jsonB->UpdateInt("users[0].eula_create_date",123);
$jsonB->UpdateString("users[1].role","Support");
$jsonB->UpdateString("users[1].sub_roles[0]","Tech");
$jsonB->UpdateString("users[1].sub_roles[1]","Service");
$jsonB->UpdateBool("users[1].viewable_for_sharing",1);
$jsonB->UpdateInt("users[1].eula_create_date",123);

$jsonB->put_EmitCompact(0);
print $jsonB->emit() . "\r\n";

# 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.
$jsonUsersDest = chilkat::CkJsonArray->new();
$jsonA->AppendArray2("users",$jsonUsersDest);

$jsonUsersSrc = chilkat::CkJsonArray->new();
$jsonB->ArrayOf2("users",$jsonUsersSrc);

# Copy the array items from source to dest
$jsonUsersDest->AppendArrayItems($jsonUsersSrc);

print $jsonA->emit() . "\r\n";

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