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);

    }