Sample code for 30+ languages & platforms
PureBasic

HTTP POST JSON and Parse JSON Response

See more HTTP Examples

Demonstrates how to send a JSON POST and then parse the JSON response.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

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

    success = CkJsonObject::ckLoadFile(json,"qa_data/json/jsonBodyForHttpPost.json")
    If success = 0
        Debug CkJsonObject::ckLastErrorText(json)
        CkJsonObject::ckDispose(json)
        ProcedureReturn
    EndIf

    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::ckHttpJson(http,"POST","https://test.something.com/XYZ/API/v1/CreditInsuranceCalculator/CalculatePremiums",json,"application/json",resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkJsonObject::ckDispose(json)
        CkHttp::ckDispose(http)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

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

    CkJsonObject::ckLoad(jsonResp,CkHttpResponse::ckBodyStr(resp))

    CkJsonObject::setCkEmitCompact(jsonResp, 0)
    Debug CkJsonObject::ckEmit(jsonResp)

    ; The JSON response to be parsed looks like this:
    ; {
    ;   "LifeAmount": 513.85,
    ;   "LifeResidualAmount": 123.38,
    ;   "CriticalIllnessAmount": 0,
    ;   "CriticalIllnessResidualAmount": 0,
    ;   "DisabilityAmount": 881.70,
    ;   "PolicyFee": 0.00,
    ;   "PolicyFeeSecondary": 0,
    ;   "PolicyFeeHidden": 50.00,
    ;   "PolicyFeeHiddenSecondary": 0
    ; }

    ; We can get the floating point numbers as strings.  Then convert to double
    ; using the appropriate string-to-double conversion for your programming language.
    ; For example, in C++ use atof.  In C# use Convert.ToDouble.  
    lifeAmount.s = CkJsonObject::ckStringOf(jsonResp,"LifeAmount")
    lifeResidualAmount.s = CkJsonObject::ckStringOf(jsonResp,"LifeResidualAmount")

    Debug "LifeAmount = " + lifeAmount
    Debug "LifeResidualAmount = " + lifeResidualAmount


    CkJsonObject::ckDispose(json)
    CkHttp::ckDispose(http)
    CkHttpResponse::ckDispose(resp)
    CkJsonObject::ckDispose(jsonResp)


    ProcedureReturn
EndProcedure