Difference between revisions of "Talk:LlJsonSetValue"
Jump to navigation
Jump to search
m (change tags) |
(broken anyway) |
||
Line 27: | Line 27: | ||
:Works for me. Can you give an example? Mine was <code>llJsonSetValue("[]",[0],String2Json("http://www.google.com/"))</code> and it returned the correct JSON -- [[User:Sei Lisa|Sei Lisa]] 10:39, 11 September 2014 (PDT) | :Works for me. Can you give an example? Mine was <code>llJsonSetValue("[]",[0],String2Json("http://www.google.com/"))</code> and it returned the correct JSON -- [[User:Sei Lisa|Sei Lisa]] 10:39, 11 September 2014 (PDT) | ||
::Well, turns out it won't work in all cases, but the reason is {{jira|BUG-6495}}. Basically, with LL's implementation of JSON you can't have JSON strings that have a ''']''' or a '''}''' character in them. |
Revision as of 07:12, 27 January 2015
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:
string String2Json(string s)
{
return llGetSubString(llList2Json(JSON_OBJECT, [s,""]), 1, -5);
}
Examples:
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"]
--Sei Lisa 17:19, 6 June 2014 (PDT)
Sadly, even this isn't a complete solution. With a URL like "http://www.google.com/", you'll get a "leaning-toothpicks" style value, but a call to llJsonSetValue() still won't pack it in correctly. -- Lavanya Hartnell 7:45, 11 August 2014 (PDT)
- Works for me. Can you give an example? Mine was
llJsonSetValue("[]",[0],String2Json("http://www.google.com/"))
and it returned the correct JSON -- Sei Lisa 10:39, 11 September 2014 (PDT)
- Well, turns out it won't work in all cases, but the reason is BUG-6495. Basically, with LL's implementation of JSON you can't have JSON strings that have a ] or a } character in them.