| value$ - the text to store, as strict UTF-8 |
|
Creates an owned JSON String from strict UTF-8 text. JSON strings hold strict UTF-8, so an international player name - accents, kanji, emoji - survives saving and loading without mangling. The text is stored and later serialized exactly; no normalization, trimming or case folding happens behind your back. The text must be valid UTF-8: since Extended-mode Strings normally are, this only bites when you build strings from raw bytes yourself - invalid UTF-8 here is a programming error, not a quiet fix-up. A single string is limited to 16 MiB. If you have legacy bytes in another encoding, run them through DecodeText first. Read the value back with JsonText; its kind is JSON_STRING under JsonKind. The returned handle is owned by you: release it with FreeJson. Container setters copy their input, so the usual pattern is create, set, free. For the full rules, see the Application Data language reference. See also: JsonText, JsonObjectSet, DecodeText, CreateJsonObject, FreeJson. |
; CreateJsonString Example
; ------------------------
; JSON strings hold strict UTF-8 text, so international player
; names survive saving without mangling
player_name=CreateJsonString("Café 世界")
Print "Kind is JSON_STRING: "+(JsonKind(player_name)=JSON_STRING)
Print "JsonText returns: "+JsonText(player_name)
Print ""
; Store it in a save-game record to see it serialized
save=CreateJsonObject()
JsonObjectSet save,"player",player_name
Print "In a save file: "+JsonStringify(save,0)
FreeJson save
FreeJson player_name
Print ""
Print "Press any key to close the example"
WaitKey
End