logo

Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden.Neue Registrierungen sind deaktiviert.

Mitteilung

Icon
Error

Einloggen


Optionen
Ansicht
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline MartinRJ Fayray  
#1 Geschrieben : Dienstag, 14. Oktober 2014 13:07:38(UTC)
MartinRJ Fayray

Rang: Ehrenmitglied

Ansehen:

Mitglied seit: 05.09.2014(UTC)
Beiträge: 84
Germany
Wohnort: Tulln und Rostock

Dankte: 1 mal(e)
Eine kleine Demonstration, wie man JSON in der LSL-Sprache verwendet.

Die hierbei verwendete Funktion JSON_TYP wandelt die Typ-Angabe in eine lesbare Form um.
Code:

string JSON_TYP(string type)
{
    if (type == JSON_INVALID) { return "invalid"; }
    if (type == JSON_OBJECT) { return "object"; }
    if (type == JSON_ARRAY) { return "array"; }
    if (type == JSON_NUMBER) { return "number"; }
    if (type == JSON_STRING) { return "string"; }
    if (type == JSON_NULL) { return "null"; }
    if (type == JSON_TRUE) { return "true"; }
    if (type == JSON_FALSE) { return "false"; }
    if (type == JSON_DELETE) { return "delete"; }
    return "error";
}
default
{
    state_entry()
    {
        list TEST = [
        "moduletype", <1,1,1>, //Dieses JSON-Objekt ist eine 'Strided'- Liste aus Name/Wert- Paaren (Name: "moduletype", Wert: <1,1,1>)
        "tier", "bla", //(Name: "tier", Wert: "bla")
        "shield", 3.0 //(Name: "shield", Wert: 3.0)
        ];
        string JSON = llList2Json(JSON_OBJECT, TEST); //Mit llList2Json wird der JSON-String erzeugt.
        
        vector EintragMODULETYPE = (vector)llJsonGetValue(JSON, ["moduletype"]); //mit llJsonGetValue liest man die Werte wieder aus, unter Angabe des Namens (hier: "moduletype").
        llOwnerSay("EintragMODULETYPE = " + (string)EintragMODULETYPE);
        llOwnerSay("EintragMODULETYPE Datentyp = " + JSON_TYP(llJsonValueType(JSON, ["moduletype"]))); //llJsonValueType gibt den Datentyp der jeweiligen JSON-Elemente an

        string EintragTIER = llJsonGetValue(JSON, ["tier"]);
        llOwnerSay("EintragTIER = " + (string)EintragTIER);
        llOwnerSay("EintragTIER Datentyp = " + JSON_TYP(llJsonValueType(JSON, ["tier"])));

        float EintragSHIELD = (float)llJsonGetValue(JSON, ["shield"]);
        llOwnerSay("EintragSHIELD = " + (string)EintragSHIELD);
        llOwnerSay("EintragSHIELD Datentyp = " + JSON_TYP(llJsonValueType(JSON, ["shield"])));
    }
}


Ausgabe:
Zitat:

[04:59] OBJEKT LEER: EintragMODULETYPE = <1.00000, 1.00000, 1.00000>
[04:59] OBJEKT LEER: EintragMODULETYPE Datentyp = string
[04:59] OBJEKT LEER: EintragTIER = bla
[04:59] OBJEKT LEER: EintragTIER Datentyp = string
[04:59] OBJEKT LEER: EintragSHIELD = 3.000000
[04:59] OBJEKT LEER: EintragSHIELD Datentyp = number

Bearbeitet vom Benutzer Samstag, 18. Oktober 2014 03:38:51(UTC)  | Grund: Nicht angegeben

It is the mark of an educated mind to be able to entertain a thought without accepting it.

Wanna join the discussion?! Login to your forum account.Neue Registrierungen sind deaktiviert.

Rss Feed  Atom Feed
Benutzer, die gerade dieses Thema lesen
OceanSpiders 2.0
Das Forum wechseln  
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.

Powered by YAF.NET | YAF.NET © 2003-2021, Yet Another Forum.NET
Diese Seite wurde in 0.153 Sekunden generiert.

Datenschutzrichtlinie
Haftungsausschluss
Impressum
Datenschutzerklärung
AGB, ToS
Kontakt