Tcl
Tcl
Iterate over JSON Array containing JSON Objects
See more JSON Examples
Demonstrates how to load a JSON array and iterate over the JSON objects.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# Loads the following JSON array and iterates over the objects:
#
# [
# {"tagId":95,"tagDescription":"hola 1","isPublic":true},
# {"tagId":98,"tagDescription":"hola 1","isPublic":true},
# {"tagId":101,"tagDescription":"hola 1","isPublic":true},
# {"tagId":104,"tagDescription":"hola 1","isPublic":true},
# {"tagId":107,"tagDescription":"hola 1","isPublic":true},
# {"tagId":110,"tagDescription":"hola 1","isPublic":true},
# {"tagId":113,"tagDescription":"hola 1","isPublic":true},
# {"tagId":114,"tagDescription":"hola 2","isPublic":true},
# {"tagId":111,"tagDescription":"hola 2","isPublic":true},
# {"tagId":108,"tagDescription":"hola 2","isPublic":true},
# {"tagId":105,"tagDescription":"hola 2","isPublic":true},
# {"tagId":102,"tagDescription":"hola 2","isPublic":true},
# {"tagId":99,"tagDescription":"hola 2","isPublic":true},
# {"tagId":96,"tagDescription":"hola 2","isPublic":true},
# {"tagId":97,"tagDescription":"hola 3","isPublic":true},
# {"tagId":100,"tagDescription":"hola 3","isPublic":true},
# {"tagId":103,"tagDescription":"hola 3","isPublic":true},
# {"tagId":106,"tagDescription":"hola 3","isPublic":true},
# {"tagId":109,"tagDescription":"hola 3","isPublic":true},
# {"tagId":112,"tagDescription":"hola 3","isPublic":true},
# {"tagId":115,"tagDescription":"hola 3","isPublic":true},
# {"tagId":93,"tagDescription":"new tag","isPublic":true},
# {"tagId":94,"tagDescription":"new tag","isPublic":true},
# {"tagId":89,"tagDescription":"tag 1","isPublic":true},
# {"tagId":90,"tagDescription":"tag 2","isPublic":true},
# {"tagId":91,"tagDescription":"tag private 1","isPublic":false},
# {"tagId":92,"tagDescription":"tag private 2","isPublic":false}
# ]
# Load a file containing the above JSON..
set sbJsonArray [new_CkStringBuilder]
set success [CkStringBuilder_LoadFile $sbJsonArray "qa_data/json/arraySample.json" "utf-8"]
set arr [new_CkJsonArray]
set success [CkJsonArray_LoadSb $arr $sbJsonArray]
set i 0
set count [CkJsonArray_get_Size $arr]
# obj is a CkJsonObject
while {$i < $count} {
set obj [CkJsonArray_ObjectAt $arr $i]
set tagId [CkJsonObject_IntOf $obj "tagId"]
set tagDescription [CkJsonObject_stringOf $obj "tagDescription"]
set isPublic [CkJsonObject_BoolOf $obj "isPublic"]
puts "tagId: $tagId"
puts "tagDescription: $tagDescription"
puts "isPublic: $isPublic"
puts "--"
delete_CkJsonObject $obj
set i [expr $i + 1]
}
delete_CkStringBuilder $sbJsonArray
delete_CkJsonArray $arr