OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.ParseJsonNode C# (CSharp) Method

ParseJsonNode() private method

private ParseJsonNode ( OSD node ) : object
node OSD
return object
        private object ParseJsonNode(OSD node)
        {
            if (node.Type == OSDType.Integer)
                return new LSL_Integer(node.AsInteger());
            if (node.Type == OSDType.Boolean)
                return new LSL_Integer(node.AsBoolean() ? 1 : 0);
            if (node.Type == OSDType.Real)
                return new LSL_Float(node.AsReal());
            if (node.Type == OSDType.UUID || node.Type == OSDType.String)
                return new LSL_String(node.AsString());
            if (node.Type == OSDType.Array)
            {
                LSL_List resp = new LSL_List();
                OSDArray ar = node as OSDArray;
                foreach (OSD o in ar)
                    resp.Add(ParseJsonNode(o));
                return resp;
            }
            if (node.Type == OSDType.Map)
            {
                LSL_List resp = new LSL_List();
                OSDMap ar = node as OSDMap;
                foreach (KeyValuePair<string, OSD> o in ar)
                {
                    resp.Add(new LSL_String(o.Key));
                    resp.Add(ParseJsonNode(o.Value));
                }
                return resp;
            }
            throw new Exception(ScriptBaseClass.JSON_INVALID);
        }
LSL_Api