Esempio n. 1
0
 public bool Evaluate(out IJsonValue value, IJSONDocument document)
 {
     value = new DateTimeJsonValue((DateTime)Constant);
     return(true);
 }
Esempio n. 2
0
        public static IJsonValue Wrap(object value)
        {
            if (value is JValue)
            {
                value = ((JValue)value).Value;
            }

            FieldDataType dataType  = JSONType.GetJSONType(value);
            IJsonValue    jsonValue = null;

            switch (dataType)
            {
            case FieldDataType.Array:
                var values = new List <IJsonValue>();
                if (value is System.Collections.ArrayList)
                {
                    var array = (System.Collections.ArrayList)value;
                    foreach (var obj in array)
                    {
                        values.Add(Wrap(obj));
                    }
                }
                else
                {
                    var array = (Array)value;
                    foreach (var obj in array)
                    {
                        values.Add(Wrap(obj));
                    }
                }
                jsonValue = new ArrayJsonValue(values.ToArray());
                break;

            case FieldDataType.Bool:
                jsonValue = new BooleanJsonValue((bool)value);
                break;

            case FieldDataType.DateTime:
                jsonValue = new DateTimeJsonValue((DateTime)value);
                break;

            case FieldDataType.Null:
                jsonValue = new NullValue();
                break;

            case FieldDataType.Number:
                jsonValue = new NumberJsonValue(value);
                break;

            case FieldDataType.Object:
                if (value.GetType() == typeof(JArray))
                {
                    var arr  = (JArray)value;
                    var vals = new List <IJsonValue>();
                    foreach (var obj in arr)
                    {
                        vals.Add(Wrap(obj));
                    }
                    jsonValue = new ArrayJsonValue(vals.ToArray());
                }
                else if (value.GetType() == typeof(IJsonValue[]))
                {
                    var arr = (IJsonValue[])value;
                    //var vals = new List<IJsonValue>();
                    //foreach (var obj in arr)
                    //{
                    //    vals.Add(Wrap(obj));
                    //}
                    jsonValue = new ArrayJsonValue(arr);    //vals.ToArray());
                }
                else
                {
                    jsonValue = new ObjectJsonValue(Serialize(value));
                }
                break;

            case FieldDataType.String:
                jsonValue = new StringJsonValue((string)value);
                break;
            }
            return(jsonValue);
        }