Perl Requires Chilkat v11.0.0+
Chilkat2 Perl
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
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";