Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string listToJson(list inputList) {
- list converted = [];
- integer i;
- integer len = llGetListLength(inputList);
- for (i = 0; i < len; i += 2) {
- string key = llList2String(inputList, i);
- string value;
- integer type = llGetListEntryType(inputList, i + 1);
- if (type == TYPE_INTEGER || type == TYPE_FLOAT) {
- value = llList2String(inputList, i + 1);
- } else if (type == TYPE_STRING) {
- value = "\"" + llList2String(inputList, i + 1) + "\"";
- } else if (type == TYPE_VECTOR || type == TYPE_ROTATION) {
- value = "\"" + llList2String(inputList, i + 1) + "\"";
- } else if (inputList == [TRUE]) {
- value = JSON_TRUE;
- } else if (inputList == [FALSE]) {
- value = JSON_FALSE;
- } else {
- value = JSON_NULL;
- }
- converted += [key, value];
- }
- return llList2Json(JSON_OBJECT, converted);
- }
- list jsonToList(string json) {
- list parsed = llJson2List(json);
- list result = [];
- integer i;
- integer len = llGetListLength(parsed);
- for (i = 0; i < len; i += 2) {
- string key = llList2String(parsed, i);
- string value = llList2String(parsed, i + 1);
- if (value == JSON_TRUE) {
- result += [key, TRUE];
- } else if (value == JSON_FALSE) {
- result += [key, FALSE];
- } else if (value == JSON_NULL) {
- result += [key, NULL_KEY]; // LSL kennt kein "null", daher NULL_KEY
- } else {
- result += [key, value];
- }
- }
- return result;
- }
- default
- {
- state_entry()
- {
- list myData = ["name", "Alice", "age", 25, "active", TRUE, "height", 1.75];
- string json = listToJson(myData);
- llOwnerSay("Serialized JSON: " + json);
- list parsedList = jsonToList(json);
- llOwnerSay("Deserialized List: " + llDumpList2String(parsedList, ", "));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement