Sample code for 30+ languages & platforms
C

JSON Hex Encoding

See more JSON Examples

Let's say your JSON contains content that is hex encoded like this: \u05d1\u05d3\u05d9\u05e7

This example shows how to get the decoded string.

Chilkat C Downloads

C
#include <C_CkJsonObject.h>
#include <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    BOOL success;
    const char *s;
    HCkJsonObject json;
    HCkStringBuilder sb;

    success = FALSE;

    s = "{ \"example\": \"\\u05d1\\u05d3\\u05d9\\u05e7\" }";

    json = CkJsonObject_Create();

    success = CkJsonObject_Load(json,s);

    // When getting the member data, it is automatically decoded.
    printf("member data: %s\n",CkJsonObject_stringOf(json,"example"));

    // Output:
    // member data: בדיק

    // When getting the full JSON, it remains encoded. This is expected and intentional.
    printf("full JSON: %s\n",CkJsonObject_emit(json));

    // Output:
    // full JSON: {"example":"\u05d1\u05d3\u05d9\u05e7"}

    // To get the full JSON without the encoding, you can decode manually.
    sb = CkStringBuilder_Create();
    CkJsonObject_EmitSb(json,sb);
    // The hex encoding used by JSON is utf-8.
    CkStringBuilder_Decode(sb,"json","utf-8");

    printf("%s\n",CkStringBuilder_getAsString(sb));

    // Output:
    // {"example":"בדיק"}


    CkJsonObject_Dispose(json);
    CkStringBuilder_Dispose(sb);

    }