Difference between revisions of "LlList2Json"

From Second Life Wiki
Jump to navigation Jump to search
m (fix "typos")
m (Christopher Walken told me he lost a comma around these parts, he wanted it back. I said I would look for it.)
Line 47: Line 47:
|also_articles={{LSL DefineRow||[[Typecast]]|}}
|also_articles={{LSL DefineRow||[[Typecast]]|}}
|notes=
|notes=
|caveats=* Note that string '''values''' items are interpreted as JSON, not LSL, strings. Quotation marks, if required, must be added explicitly. For example, <code>[[llJson2List]]([[llList2Json]]([[JSON_ARRAY]], ["bacon", "true", "false", "null"]))</code> returns the LSL list <code>["bacon", [[JSON_TRUE]], [[JSON_FALSE]], [[JSON_NULL]]]</code>, while <code>[[llJson2List]]([[llList2Json]]([[JSON_ARRAY]], ["\"bacon\"", "\"true\"", "\"false\"", "\"null\""]))</code> returns the LSL list <code>["bacon", "true", "false", "null"]</code>
|caveats=* Note that string '''values''' items are interpreted as JSON, not LSL strings. Quotation marks, if required, must be added explicitly. For example, <code>[[llJson2List]]([[llList2Json]]([[JSON_ARRAY]], ["bacon", "true", "false", "null"]))</code> returns the LSL list <code>["bacon", [[JSON_TRUE]], [[JSON_FALSE]], [[JSON_NULL]]]</code>, while <code>[[llJson2List]]([[llList2Json]]([[JSON_ARRAY]], ["\"bacon\"", "\"true\"", "\"false\"", "\"null\""]))</code> returns the LSL list <code>["bacon", "true", "false", "null"]</code>
|permission
|permission
|negative_index
|negative_index

Revision as of 12:00, 17 September 2014

Summary

Function: string llList2Json( string type, list values );

This function takes a list and returns a JSON string of that list as either a json object or json array.
Returns a string that is either values serialized as a JSON type, or if an error was encountered JSON_INVALID.

• string type
• list values

To convert a json formatted string into a list use llJson2List.

Specification

See Json_usage_in_LSL

  • If type is JSON_OBJECT the list must be a strided list of key, value pairs and a string representing a json object will be returned.
  • If type is JSON_ARRAY then a string representing a json array will be returned.
  • If type is any other string then JSON_INVALID will be returned.
  • Json types from the input list are inferred from the LSL data type

Type Flags Value Unicode Integer URL Encoded HTML Encoded Description
JSON_INVALID U+FDDO 64976 "%EF%B7%90" &#xFDD0; Value returned when inputs are not well formed.
JSON_OBJECT U+FDD1 64977 "%EF%B7%91" &#xFDD1;
JSON_ARRAY U+FDD2 64978 "%EF%B7%92" &#xFDD2;

Caveats

All Issues ~ Search JIRA for related Bugs

Examples

<lsl> 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. </lsl>

  • 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.

See Also

Constants

•  JSON_ARRAY
•  JSON_OBJECT
•  JSON_INVALID

Functions

•  llJson2List
•  llJsonGetValue
•  llJsonSetValue
•  llJsonValueType

Articles

•  Typecast

Deep Notes

History

Date of Release 20/05/2013

Search JIRA for related Issues

Signature

function string llList2Json( string type, list values );

Haiku

Their ships list to port
for what reason I know not
we list to JSON

Listen to Jason
cryptically my sensei said
I must have misheard