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

Sort JSON Object by Member Key Name

See more JSON Examples

Demonstrates how to sort the members of a JSON object by the key name.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

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

    CkJsonObject::ckUpdateString(json,"xyz","1234")
    CkJsonObject::ckUpdateString(json,"abc.xyz","1234")
    CkJsonObject::ckUpdateString(json,"abc.def","1234")
    CkJsonObject::ckUpdateString(json,"abc.aaa","1234")
    CkJsonObject::ckUpdateString(json,"ghi","1234")
    CkJsonObject::ckUpdateString(json,"nmo","1234")

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

    ;  This is our initial JSON:

    ;  {
    ;    "xyz": "1234",
    ;    "abc": {
    ;      "xyz": "1234",
    ;      "def": "1234",
    ;      "aaa": "1234"
    ;    },
    ;    "ghi": "1234",
    ;    "nmo": "1234"
    ;  }

    ;  Sort the top-level JSON object by key.
    ascending.i = 1
    caseSensitive.i = 1
    CkJsonObject::ckSort(json,ascending,caseSensitive)

    ;  Look at the sorted JSON..
    Debug CkJsonObject::ckEmit(json)

    ;  {
    ;    "abc": {
    ;      "xyz": "1234",
    ;      "def": "1234",
    ;      "aaa": "1234"
    ;    },
    ;    "ghi": "1234",
    ;    "nmo": "1234",
    ;    "xyz": "1234"
    ;  }

    ;  Now sort the members of the "abc" object..
    jsonAbc.i = CkJsonObject::ckCreate()
    If jsonAbc.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckObjectOf2(json,"abc",jsonAbc)

    CkJsonObject::ckSort(jsonAbc,ascending,caseSensitive)

    ;  Now look at the JSON with the members under "abc" also sorted..
    Debug CkJsonObject::ckEmit(json)

    ;  {
    ;    "abc": {
    ;      "aaa": "1234",
    ;      "def": "1234",
    ;      "xyz": "1234"
    ;    },
    ;    "ghi": "1234",
    ;    "nmo": "1234",
    ;    "xyz": "1234"
    ;  }


    CkJsonObject::ckDispose(json)
    CkJsonObject::ckDispose(jsonAbc)


    ProcedureReturn
EndProcedure