Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.0.0+

Swap JSON Objects

See more JSON Examples

Demonstrates how to swap two JSON objects within a JSON document.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

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

    CkJsonObject::setCkEmitCompact(json, 0)

    ;  Load the following JSON:

    ;  {
    ;    "petter": {
    ;      "DOB": "26/02/1986",
    ;      "gender": "male",
    ;      "country": "US"
    ;    },
    ;    "Sara": {
    ;      "DOB": "13/05/1982",
    ;      "gender": "female",
    ;      "country": "FR"
    ;    },
    ;    "Jon": {
    ;      "DOB": "19/03/1984",
    ;      "gender": "male",
    ;      "country": "UK"
    ;    }
    ;  }

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

    ;  Swap the positions of Jon and Sara.
    index1.i = CkJsonObject::ckIndexOf(json,"Jon")
    index2.i = CkJsonObject::ckIndexOf(json,"Sara")
    CkJsonObject::ckSwap(json,index1,index2)

    ;  We have this now:
    Debug CkJsonObject::ckEmit(json)

    ;  {
    ;    "petter": {
    ;      "DOB": "26/02/1986",
    ;      "gender": "male",
    ;      "country": "US"
    ;    },
    ;    "Jon": {
    ;      "DOB": "19/03/1984",
    ;      "gender": "male",
    ;      "country": "UK"
    ;    },
    ;    "Sara": {
    ;      "DOB": "13/05/1982",
    ;      "gender": "female",
    ;      "country": "FR"
    ;    }
    ;  }

    ;  To swap an inner member:

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

    CkJsonObject::ckObjectOf2(json,"Sara",jsonSara)

    index1 = CkJsonObject::ckIndexOf(jsonSara,"DOB")
    index2 = CkJsonObject::ckIndexOf(jsonSara,"country")
    CkJsonObject::ckSwap(jsonSara,index1,index2)

    ;  We now have this:
    Debug CkJsonObject::ckEmit(json)

    ;  {
    ;    "petter": {
    ;      "DOB": "26/02/1986",
    ;      "gender": "male",
    ;      "country": "US"
    ;    },
    ;    "Jon": {
    ;      "DOB": "19/03/1984",
    ;      "gender": "male",
    ;      "country": "UK"
    ;    },
    ;    "Sara": {
    ;      "country": "FR",
    ;      "gender": "female",
    ;      "DOB": "13/05/1982"
    ;    }
    ;  }


    CkJsonObject::ckDispose(json)
    CkJsonObject::ckDispose(jsonSara)


    ProcedureReturn
EndProcedure