string llList2Json(string type,// JSON target type (JSON_ARRAYorJSON_OBJECT).list values// List of values to serialize.
);- Returns
string- Energy
- 10
This function takes a list and returns a JSON string of that list as either a json object or json array.
To convert a json formatted string into a list use llJson2List.
Returns a string that is either values serialized as a JSON type, or if an error was encountered JSON_INVALID.
string result = llList2Json("", []);Specification
Section titled “Specification”- If type is
JSON_OBJECTthe list must be a strided list of key, value pairs and a string representing a json object will be returned. - If type is
JSON_ARRAYthen a string representing a json array will be returned. - If type is any other string then
JSON_INVALIDwill be returned. - Json types from the input list are inferred from the LSL data type
- integer and float types are encoded as
JSON_NUMBER - “true” and “false” are encoded as
JSON_TRUEandJSON_FALSE, respectively - “null” is encoded as
JSON_NULL - properly-formatted json strings in the input are kept as-is (will either be
JSON_STRING,JSON_OBJECT, orJSON_ARRAY) - all other strings encoded as
JSON_STRING. Strings are trimmed of whitespace at the beginning and end, as if passed thrullStringTrim - Note in particular that strings containing valid JSON numbers are converted to JSON strings, not left as JSON numbers (BUG-6284). This differs to the treatment that
llJsonSetValuegives to strings that contain JSON numbers, which leaves them as numbers.
| Type Flags | Value | Unicode | Integer | URL Encoded | HTML Encoded | Description |
|---|---|---|---|---|---|---|
JSON_INVALID | U+FDDO | 64976 | “%EF%B7%90” |  | Value returned when inputs are not well formed. | |
JSON_OBJECT | U+FDD1 | 64977 | “%EF%B7%91” |  | ||
JSON_ARRAY | U+FDD2 | 64978 | “%EF%B7%92” |  |
Caveats
Section titled “Caveats”- Note that string values items are interpreted as JSON, not LSL strings. Quotation marks, if required, must be added explicitly. For example,
llJson2List(llList2Json(JSON_ARRAY, ["bacon", "true", "false", "null"]))returns the LSL list["bacon", JSON_TRUE, JSON_FALSE, JSON_NULL], whilellJson2List(llList2Json(JSON_ARRAY, ["\"bacon\"", "\"true\"", "\"false\"", "\"null\""]))returns the LSL list["bacon", "true", "false", "null"] llJson2Listdoes not order the JSON alphabetically, likellJsonSetValuedoes!
default{ touch_start(integer total_number) { string json_msg = llList2Json(JSON_OBJECT, ["C","3","B","2","A","1"]); llOwnerSay("llList2Json: " + json_msg); // Output: llList2Json: {"C":"3","B":"2","A":"1"}
json_msg = llJsonSetValue(json_msg, ["D"], "4"); llOwnerSay("llJsonSetValue: " + json_msg); // Output: llJsonSetValue: {"A":"1","B":"2","C":"3","D":4} }}Examples
Section titled “Examples”Example 1
6 collapsed lines
default{ state_entry() { list items; string json;
items = ["89556747-24cb-43ed-920b-47caed15465f"]; json = llList2Json(JSON_ARRAY, items); // ["89556747-24cb-43ed-920b-47caed15465f"]
items = ["pi", 3.14, "set", "[1,2,3]", "status", "ok"]; json = llList2Json(JSON_OBJECT, items); // {"pi":3.140000,"set":[1,2,3],"status":"ok"}
items = [0, 3.14, "[1,2,3]", "{}"]; json = llList2Json(JSON_ARRAY, items); // [0,3.140000,[1,2,3],{}] }}Example 2
string CSV2Json(string csv){ list li = llCSV2List(csv); return llList2Json(JSON_ARRAY, li);}// This function converts a comma separated values string to a Json array string.// CSV strings are often used for link-messages, notecards and they are easier to type as input commands.// A Json-Array can store multiple of those as a nested list within the same Json-string via JSON_APPEND.-
You could store multiple lists that set different particle effects in the same string. Use LlList2Json() to write the string and
llJson2List()to read the particle system defining lists from it. The loss in float-accuracy (Json has BAD float-to-string-conversion) does not matter as much for particle effects. -
You could store multiple lists, that set different
llSetPrimitiveparamsFast()values for different situation (like different animation key frames), in the same Json String.
History
Section titled “History”Date of Release 20/05/2013
See also
Section titled “See also”Functions
Section titled “Functions”Articles
Section titled “Articles”Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.