Sample code for 30+ languages & platforms
PureBasic

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

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    s.s = "{ " + Chr(34) + "example" + Chr(34) + ": " + Chr(34) + "\u05d1\u05d3\u05d9\u05e7" + Chr(34) + " }"

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

    success = CkJsonObject::ckLoad(json,s)

    ; When getting the member data, it is automatically decoded.
    Debug "member data: " + CkJsonObject::ckStringOf(json,"example")

    ; Output:
    ; member data: בדיק

    ; When getting the full JSON, it remains encoded. This is expected and intentional.
    Debug "full JSON: " + CkJsonObject::ckEmit(json)

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

    ; To get the full JSON without the encoding, you can decode manually.
    sb.i = CkStringBuilder::ckCreate()
    If sb.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckEmitSb(json,sb)
    ; The hex encoding used by JSON is utf-8.
    CkStringBuilder::ckDecode(sb,"json","utf-8")

    Debug CkStringBuilder::ckGetAsString(sb)

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


    CkJsonObject::ckDispose(json)
    CkStringBuilder::ckDispose(sb)


    ProcedureReturn
EndProcedure