Sample code for 30+ languages & platforms
PureBasic

Load JSON Array from HTTP Response Body

Demonstrates how to load the HTTP response body directly into a JsonArray.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonArray.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    success = CkHttp::ckHttpStr(http,"GET","https://www.chilkatsoft.com/exampledata/sampleArray.json","","","",resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    ; A JSON array is JSON that begins with "[" and ends with "]"
    jarr.i = CkJsonArray::ckCreate()
    If jarr.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; If we wish to transfer (instead of copy) the JSON from the HttpResponse to the JsonArray, then add the keyword "TakeResponseBody" to UncommonOptions
    ; This could save memory for extremely large JSON responses.
    CkHttpResponse::setCkUncommonOptions(resp, "TakeResponseBody")

    CkHttpResponse::ckGetBodyJarr(resp,jarr)

    Debug CkJsonArray::ckEmit(jarr)

    ; Note: If UncommonOptions contained "TakeResponseBody", then the response BodyStr will now be empty:
    Debug "----"
    Debug CkHttpResponse::ckBodyStr(resp)


    CkHttp::ckDispose(http)
    CkHttpResponse::ckDispose(resp)
    CkJsonArray::ckDispose(jarr)


    ProcedureReturn
EndProcedure