Sample code for 30+ languages & platforms
PureBasic

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