Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonArray.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 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..
    sbJsonArray.i = CkStringBuilder::ckCreate()
    If sbJsonArray.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkStringBuilder::ckLoadFile(sbJsonArray,"qa_data/json/arraySample.json","utf-8")

    arr.i = CkJsonArray::ckCreate()
    If arr.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkJsonArray::ckLoadSb(arr,sbJsonArray)

    tagId.i
    tagDescription.s
    isPublic.i

    i.i = 0
    count.i = CkJsonArray::ckSize(arr)
    obj.i
    While i < count
        obj = CkJsonArray::ckObjectAt(arr,i)
        tagId = CkJsonObject::ckIntOf(obj,"tagId")
        tagDescription = CkJsonObject::ckStringOf(obj,"tagDescription")
        isPublic = CkJsonObject::ckBoolOf(obj,"isPublic")

        Debug "tagId: " + Str(tagId)
        Debug "tagDescription: " + tagDescription
        Debug "isPublic: " + Str(isPublic)
        Debug "--"

        CkJsonObject::ckDispose(obj)

        i = i + 1
    Wend


    CkStringBuilder::ckDispose(sbJsonArray)
    CkJsonArray::ckDispose(arr)


    ProcedureReturn
EndProcedure