Sample code for 30+ languages & platforms
Unicode 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 Unicode C Downloads

Unicode C
#include <C_CkJsonObjectW.h>

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

    json = CkJsonObjectW_Create();

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

    CkJsonObjectW_putEmitCompact(json,FALSE);
    wprintf(L"%s\n",CkJsonObjectW_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;
    CkJsonObjectW_Sort(json,ascending,caseSensitive);

    // Look at the sorted JSON..
    wprintf(L"%s\n",CkJsonObjectW_emit(json));

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

    // Now sort the members of the "abc" object..
    jsonAbc = CkJsonObjectW_Create();
    CkJsonObjectW_ObjectOf2(json,L"abc",jsonAbc);

    CkJsonObjectW_Sort(jsonAbc,ascending,caseSensitive);

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

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


    CkJsonObjectW_Dispose(json);
    CkJsonObjectW_Dispose(jsonAbc);

    }