Sample code for 30+ languages & platforms
Tcl

Loading and Parsing a JSON Array

See more JSON Examples

A JSON array is JSON that begins with "[" and ends with "]". For example, this is a JSON array that contains 3 JSON objects.
[{"name":"jack"},{"name":"john"},{"name":"joe"}]
A JSON object, however, is JSON that begins with "{" and ends with "}". For example, this JSON is an object that contains an array.
{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}
This example shows how loading a JSON array is different than loading a JSON object.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set strJsonArray "[{\"name\":\"jack\"},{\"name\":\"john\"},{\"name\":\"joe\"}]"

set strJsonObject "{\"pets\":[{\"name\":\"jack\"},{\"name\":\"john\"},{\"name\":\"joe\"}]}"

# A JSON array must be loaded using JsonArray:
set jsonArray [new_CkJsonArray]

CkJsonArray_Load $jsonArray $strJsonArray

# Examine the values:
set i 0
while {$i < [CkJsonArray_get_Size $jsonArray]} {
    # jsonObj is a CkJsonObject
    set jsonObj [CkJsonArray_ObjectAt $jsonArray $i]
    puts "$i: [CkJsonObject_stringOf $jsonObj name]"
    delete_CkJsonObject $jsonObj

    set i [expr $i + 1]
}

# Output is:

# 	0: jack
# 	1: john
# 	2: joe

# A JSON object must be loaded using JsonObject
set jsonObject [new_CkJsonObject]

CkJsonObject_Load $jsonObject $strJsonObject

# Examine the values:
set i 0
set numPets [CkJsonObject_SizeOfArray $jsonObject "pets"]
while {$i < $numPets} {
    CkJsonObject_put_I $jsonObject $i
    puts "$i: [CkJsonObject_stringOf $jsonObject {pets[i].name}]"
    set i [expr $i + 1]
}

# Output is:

# 	0: jack
# 	1: john
# 	2: joe

delete_CkJsonArray $jsonArray
delete_CkJsonObject $jsonObject