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

JSON: Miscellaneous Operations

See more JSON Examples

Demonstrates a variety of JSON API methods. This example uses the following JSON document:
{
   "alphabet": "abcdefghijklmnopqrstuvwxyz",
   "sampleData" : {
           "pi": 3.14,
	   "apple": "juicy",
	   "hungry": true,
	   "withoutValue": null,
           "answer": 42
          
	}
}

Chilkat Perl Downloads

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

my $json = Chilkat2::JsonObject->new;
$json->EmitCompact(0);

# Assume the file contains the data as shown above..
my $success = $json->LoadFile('qa_data/json/sample2.json');
if (!$success) {
    print $json->LastErrorText, "\n";
    exit;
}

# Get the "sampleData" object:
my $sampleData = Chilkat2::JsonObject->new;
$json->ObjectOf2('sampleData', $sampleData);

# Demonstrate BoolAt and BoolOf
print 'hungry: ', ($sampleData->BoolOf('hungry') ? 1 : 0), "\n";
print 'hungry: ', ($sampleData->BoolAt(2) ? 1 : 0), "\n";

# StringOf returns the value as a string regardless of it's actual type:
print 'pi: ', $sampleData->StringOf('pi'), "\n";
print 'answer: ', $sampleData->StringOf('answer'), "\n";
print 'withoutValue: ', $sampleData->StringOf('withoutValue'), "\n";
print 'hungry: ', $sampleData->StringOf('hungry'), "\n";

# Demonstrate IsNullOf / IsNullAt
print 'withoutValue is null? ', ($sampleData->IsNullOf('withoutValue') ? 1 : 0), "\n";
print 'withoutValue is null? ', ($sampleData->IsNullAt(3) ? 1 : 0), "\n";
print 'apple is null? ', ($sampleData->IsNullOf('apple') ? 1 : 0), "\n";
print 'apple is null? ', ($sampleData->IsNullAt(1) ? 1 : 0), "\n";

# IntOf
print 'answer: ', $sampleData->IntOf('answer'), "\n";

# SetNullAt, SetNullOf
# Set "pi" to null
$success = $sampleData->SetNullAt(0);
# Set "answer" to null
$success = $sampleData->SetNullOf('answer');

# Show the changes:
print $json->Emit(), "\n";

# Restore pi and apple:
$success = $sampleData->SetNumberAt(0, '3.14');
$success = $sampleData->SetNumberOf('answer', '42');

# Show the changes:
print $json->Emit(), "\n";

# Add a null value named "afterApple" just after "apple"
$success = $sampleData->AddNullAt(2, 'afterApple');

# Add a boolean value just after "pi"
$success = $sampleData->AddBoolAt(1, 'afterPi', 0);

# Examine the changes..
print $json->Emit(), "\n";