Sample code for 30+ languages & platforms
C

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 C Downloads

C
#include <C_CkJsonObject.h>

void ChilkatSample(void)
    {
    HCkJsonObject json;
    BOOL ascending;
    BOOL caseSensitive;
    HCkJsonObject jsonAbc;

    json = CkJsonObject_Create();

    CkJsonObject_UpdateString(json,"xyz","1234");
    CkJsonObject_UpdateString(json,"abc.xyz","1234");
    CkJsonObject_UpdateString(json,"abc.def","1234");
    CkJsonObject_UpdateString(json,"abc.aaa","1234");
    CkJsonObject_UpdateString(json,"ghi","1234");
    CkJsonObject_UpdateString(json,"nmo","1234");

    CkJsonObject_putEmitCompact(json,FALSE);
    printf("%s\n",CkJsonObject_emit(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 = TRUE;
    caseSensitive = TRUE;
    CkJsonObject_Sort(json,ascending,caseSensitive);

    // Look at the sorted JSON..
    printf("%s\n",CkJsonObject_emit(json));

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

    // Now sort the members of the "abc" object..
    jsonAbc = CkJsonObject_Create();
    CkJsonObject_ObjectOf2(json,"abc",jsonAbc);

    CkJsonObject_Sort(jsonAbc,ascending,caseSensitive);

    // Now look at the JSON with the members under "abc" also sorted..
    printf("%s\n",CkJsonObject_emit(json));

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


    CkJsonObject_Dispose(json);
    CkJsonObject_Dispose(jsonAbc);

    }