PureBasic
PureBasic
JSON Hex Encoding
See more JSON Examples
Let's say your JSON contains content that is hex encoded like this: \u05d1\u05d3\u05d9\u05e7This example shows how to get the decoded string.
Chilkat PureBasic Downloads
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