Exemplo n.º 1
0
 private static bool IsValueJsonCompatible(DynValue value)
 {
     return(value.Type == DataType.Boolean || value.IsNil() ||
            value.Type == DataType.Number || value.Type == DataType.String ||
            value.Type == DataType.Table ||
            (JsonNull.IsJsonNull(value)));
 }
Exemplo n.º 2
0
 private static DynValue ParseJsonValue(Lexer L, Script script, bool emptyArray)
 {
     if (L.Current.Type == TokenType.Brk_Open_Curly)
     {
         return(ParseJsonObject(L, script, emptyArray));
     }
     else if (L.Current.Type == TokenType.Brk_Open_Square)
     {
         return(ParseJsonArray(L, script, emptyArray));
     }
     else if (L.Current.Type == TokenType.String)
     {
         return(DynValue.NewString(L.Current.Text));
     }
     else if (L.Current.Type == TokenType.Number)
     {
         return(DynValue.NewNumber(L.Current.GetNumberValue()).AsReadOnly());
     }
     else if (L.Current.Type == TokenType.True)
     {
         return(DynValue.True);
     }
     else if (L.Current.Type == TokenType.False)
     {
         return(DynValue.False);
     }
     else if (L.Current.Type == TokenType.Name && L.Current.Text == "null")
     {
         return(JsonNull.Create());
     }
     else
     {
         throw new SyntaxErrorException(L.Current, "Unexpected token : '{0}'", L.Current.Text);
     }
 }
Exemplo n.º 3
0
 private static DynValue ParseJsonValue(Lexer L, Script script)
 {
     if (L.Current.Type == TokenType.Brk_Open_Curly)
     {
         Table t = ParseJsonObject(L, script);
         return(DynValue.NewTable(t));
     }
     else if (L.Current.Type == TokenType.Brk_Open_Square)
     {
         Table t = ParseJsonArray(L, script);
         return(DynValue.NewTable(t));
     }
     else if (L.Current.Type == TokenType.String)
     {
         return(DynValue.NewString(L.Current.Text));
     }
     else if (L.Current.Type == TokenType.Number || L.Current.Type == TokenType.Op_MinusOrSub)
     {
         return(ParseJsonNumberValue(L, script));
     }
     else if (L.Current.Type == TokenType.True)
     {
         return(DynValue.True);
     }
     else if (L.Current.Type == TokenType.False)
     {
         return(DynValue.False);
     }
     else if (L.Current.Type == TokenType.Name && L.Current.Text == "null")
     {
         return(JsonNull.Create());
     }
     else
     {
         throw new SyntaxErrorException(L.Current, "Unexpected token : '{0}'", L.Current.Text);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Converts a generic object to JSON
        /// </summary>
        public static string ObjectToJson(object obj)
        {
            DynValue v = ObjectValueConverter.SerializeObjectToDynValue(null, obj, JsonNull.Create());

            return(JsonTableConverter.TableToJson(v.Table));
        }
Exemplo n.º 5
0
        /// <summary>
        /// Converts a generic object to JSON
        /// </summary>
        public static string ObjectToJson(object obj)
        {
            DynValue      v  = ObjectValueConverter.SerializeObjectToDynValue(null, obj, JsonNull.Create(), JsonEmptyArray.Create());
            StringBuilder sb = new StringBuilder();

            ValueToJson(sb, v);
            return(sb.ToString());
        }