Talk:LlList2Json

From Second Life Wiki
Revision as of 17:22, 6 June 2014 by Sei Lisa (talk | contribs) (Safe strings)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Safe strings

Passing strings verbatim to llJsonSetValue or llList2Json is not safe. One way to escape strings properly to make them safe for use with both is to use this function: <lsl> string String2Json(string s) {

   return llGetSubString(llList2Json(JSON_OBJECT, [s,""]), 1, -5);

} </lsl> Examples: <lsl> llOwnerSay(String2Json(llUnescapeURL("%09"))); // outputs: Object: "\t" llOwnerSay(String2Json("\n")); // outputs: Object: "\n" llOwnerSay(String2Json("this \"string\" is not safe")); // outputs: Object: "this \"string\" is not safe" llOwnerSay(String2Json("\"ab\"")); // outputs: Object: "\"ab\""

// Examples of use with the corresponding functions: llOwnerSay(llJsonSetValue("[]", [0], String2Json("this \"string\" is not safe"))); llOwnerSay(llList2Json(JSON_ARRAY, [String2Json("this \"string\" is not safe")])); // both output: Object: ["this \"string\" is not safe"] </lsl>

--Sei Lisa 17:22, 6 June 2014 (PDT)