public object ConvertFromJson(IJsonValue value)
        {
            if (value == null || value.ValueType == JsonValueType.Null)
            {
                return(null);
            }
            else
            {
                JsonArray     array  = value.GetArray();
                ComplexType[] result = new ComplexType[array.Count];
                for (int i = 0; i < array.Count; i++)
                {
                    IJsonValue item = array[i];
                    if (item != null && item.ValueType != JsonValueType.Null)
                    {
                        JsonObject obj = item.GetObject();
                        result[i] = new ComplexType
                        {
                            Name = obj["Name"].GetString(),
                            Age  = (int)obj["Age"].GetNumber()
                        };
                    }
                }

                return(result);
            }
        }
示例#2
0
        internal static object ValueToObject(IJsonValue value)
        {
            switch (value.ValueType)
            {
            case JsonValueType.Null:
                return(null);

            case JsonValueType.Boolean:
                return(value.GetBoolean());

            case JsonValueType.Number:
                return(value.GetNumber());

            case JsonValueType.String:
                return(value.GetString());

            case JsonValueType.Object:
                return(new JsonPropertyProvider(value.GetObject()));

            case JsonValueType.Array:
                return(new JsonVectorView(value.GetArray()));

            default:
                throw new ArgumentException();
            }
        }
        public void Initial(IJsonValue o)
        {
            JsonObject token = o.GetObject();

            id           = token["id"].GetNumber();
            FromUserName = token["fromusername"].GetString();
            FromUserUri  = token["url"].GetString();
            Dateline     = Tools.ConvertTime(token["dateline"].GetNumber());
            GetPic(token["fromUserInfo"].GetObject()["userSmallAvatar"].GetString());
            Regex  regex = new Regex("<a.*?>.*?</a>"), regex2 = new Regex("href=\".*"), regex3 = new Regex(">.*<");
            string s = token["note"].GetString();

            while (regex.IsMatch(s))
            {
                var    h = regex.Match(s);
                string t = regex3.Match(h.Value).Value.Replace(">", string.Empty);
                t = t.Replace("<", string.Empty);
                string tt = regex2.Match(h.Value).Value.Replace("href=\"", string.Empty);
                if (tt.IndexOf("\"") > 0)
                {
                    tt = tt.Substring(0, tt.IndexOf("\""));
                }
                Uri = tt;
                s   = s.Replace(h.Value, t);
            }
            Note = s;
        }
示例#4
0
        public FeedReplyViewModel(IJsonValue t, bool showReplyRow = true) : base(t)
        {
            JsonObject token = t.GetObject();

            showPic  = token.TryGetValue("pic", out IJsonValue value) && !string.IsNullOrEmpty(value.GetString());
            dateline = Tools.ConvertTime(double.Parse(token["dateline"].ToString().Replace("\"", string.Empty)));
            if (showPic)
            {
                picUrl = value.GetString();
                pic    = new BitmapImage(new Uri(picUrl));
            }
            message   = Tools.GetMessageText(token["message"].GetString());
            rurl      = $"/u/{token["ruid"].GetNumber()}";
            rusername = token["rusername"].GetString();
            likenum   = token["likenum"].ToString().Replace("\"", string.Empty);
            replynum  = token["replynum"].ToString().Replace("\"", string.Empty);
            if (!string.IsNullOrEmpty(token["userInfo"].GetObject()["userSmallAvatar"].GetString()))
            {
                userSmallAvatar = new BitmapImage(new Uri(token["userInfo"].GetObject()["userSmallAvatar"].GetString()));
            }
            token.TryGetValue("replyRowsCount", out IJsonValue value1);
            replyRowsCount = value1?.GetNumber() ?? 0;
            showreplyRows  = showReplyRow && replyRowsCount > 0;
            if (showreplyRows)
            {
                List <SimpleFeedReplyViewModel> models = new List <SimpleFeedReplyViewModel>();
                foreach (var item in token["replyRows"].GetArray())
                {
                    models.Add(new SimpleFeedReplyViewModel(item));
                }
                replyRows     = models.ToArray();
                replyRowsMore = token["replyRowsMore"].GetNumber();
            }
        }
示例#5
0
        public Obtenercarrerasxcarnet_Result(IJsonValue jsonValue)
        {
            JsonObject jsonObject = jsonValue.GetObject();

            Carrera = jsonObject.GetNamedString("Carrera");
            Nombre  = jsonObject.GetNamedString("Nombre");
        }
示例#6
0
        public SourceFeedViewModel(IJsonValue t) : base(t)
        {
            JsonObject token = t.GetObject();

            url = token.TryGetValue("url", out IJsonValue json) ? json.GetString() : $"/feed/{token["id"].ToString().Replace("\"", string.Empty)}";
            if (token["entityType"].GetString() != "article")
            {
                uurl          = token["userInfo"].GetObject()["url"].GetString();
                username      = token["userInfo"].GetObject()["username"].GetString();
                dateline      = Tools.ConvertTime(double.Parse(token["dateline"].ToString().Replace("\"", string.Empty)));
                message       = token["message"].GetString();
                message_title = token.TryGetValue("message_title", out IJsonValue j) ? j.GetString() : string.Empty;
            }
            else
            {
                dateline      = Tools.ConvertTime(token["digest_time"].GetNumber());
                message       = token["message"].GetString().Substring(0, 120) + "……<a href=\"\">查看更多</a>";
                message_title = token["title"].GetString();
            }
            showMessage_title = !string.IsNullOrEmpty(message_title);
            showPicArr        = token.TryGetValue("picArr", out IJsonValue value) && value.GetArray().Count > 0 && !string.IsNullOrEmpty(value.GetArray()[0].GetString());
            if (token["feedTypeName"].GetString() == "酷图" && !((Windows.UI.Xaml.Window.Current.Content as Windows.UI.Xaml.Controls.Frame).Content is Pages.FeedPages.FeedListPage))
            {
                isCoolPictuers = true;
                showPicArr     = false;
            }
            pics = token["picArr"].GetArray().Select(i => i.GetString()).ToList();
            GetPic(token);
        }
示例#7
0
        public Etiquetas(IJsonValue jsonValue)
        {
            JsonObject jsonObject = jsonValue.GetObject();

            etiqueta = Convert.ToInt16(jsonObject.GetNamedNumber("Etiqueta"));
            valor    = jsonObject.GetNamedString("Valor");
        }
示例#8
0
        public FeedReplyViewModel(IJsonValue t, bool showReplyRow = true) : base(t)
        {
            JsonObject token = t.GetObject();

            dateline           = Tools.ConvertTime(double.Parse(token["dateline"].ToString().Replace("\"", string.Empty)));
            message            = token["message"].GetString();
            userSmallAvatarUrl = token["userInfo"].GetObject()["userSmallAvatar"].GetString();
            likenum            = token["likenum"].ToString().Replace("\"", string.Empty);
            replynum           = token["replynum"].ToString().Replace("\"", string.Empty);
            token.TryGetValue("replyRowsCount", out IJsonValue value1);
            replyRowsCount = value1?.GetNumber() ?? 0;
            showreplyRows  = showReplyRow && replyRowsCount > 0;
            if (showreplyRows)
            {
                List <SimpleFeedReplyViewModel> models = new List <SimpleFeedReplyViewModel>();
                foreach (var item in token["replyRows"].GetArray())
                {
                    models.Add(new SimpleFeedReplyViewModel(item));
                }
                replyRows     = models.ToArray();
                replyRowsMore = token["replyRowsMore"].GetNumber();
            }
            liked = token.TryGetValue("userAction", out IJsonValue v) ? v.GetObject()["like"].GetNumber() == 1 : false;
            GetPic();
        }
        private PhraseNode LoadPhraseNode(IJsonValue jsonValue, PhraseNode parent)
        {
            var jsonObj    = jsonValue.GetObject();
            var caption    = jsonObj.GetNamedString("caption");
            var items      = jsonObj.ContainsKey("items") ? jsonObj.GetNamedArray("items") : null;
            var isCategory = jsonObj.ContainsKey("isCategory") ? jsonObj.GetNamedBoolean("isCategory") : (items != null) && (items.Count > 0);

            var phraseNode = new PhraseNode
            {
                Caption    = caption,
                Parent     = parent,
                IsCategory = isCategory,
            };

            if (items == null)
            {
                return(phraseNode);
            }

            foreach (var item in items)
            {
                var childNode = LoadPhraseNode(item, phraseNode);
                phraseNode.Children.Add(childNode);
            }
            return(phraseNode);
        }
示例#10
0
        protected Location GetLocation(IJsonValue locationValue)
        {
            if (locationValue.ValueType == JsonValueType.Null)
            {
                return(null);
            }

            var locationObject = locationValue.GetObject();

            double latitude  = 0;
            double longitude = 0;

            if (locationObject.ContainsKey("latitude") && locationObject.ContainsKey("longitude"))
            {
                latitude  = locationObject["latitude"].GetNumber();
                longitude = locationObject["longitude"].GetNumber();
            }

            if (locationObject.ContainsKey("name") && locationObject.ContainsKey("id"))
            {
                var name = locationObject["name"].GetString();
                var id   = locationObject["id"].GetNumber();

                return(new Location(latitude, longitude, name, id));
            }

            if (locationObject.ContainsKey("id"))
            {
                var id = locationObject["id"].GetNumber();

                return(new Location(id));
            }

            return(new Location(latitude, longitude));
        }
示例#11
0
        public static IJsonValue GetValueFromPath(this IJsonValue obj, string path)
        {
            var names = path.Split('.');

            IJsonValue foundValue = obj;

            foreach (var name in names)
            {
                if (foundValue.ValueType != JsonValueType.Object)
                {
                    foundValue = null;
                    break;
                }

                var parentObj = foundValue.GetObject();

                var arrayStartPos = name.IndexOf('[');

                if (arrayStartPos > 0)
                {
                    foundValue = null;
                    var arrayEndPos = name.IndexOf(']', arrayStartPos);

                    if (arrayEndPos > 0)
                    {
                        var arrayName      = name.Substring(0, arrayStartPos);
                        var arrayIndexText = name.Substring(arrayStartPos + 1, arrayEndPos - arrayStartPos - 1);

                        uint arrayIndex;
                        if (parentObj.ContainsKey(arrayName) && uint.TryParse(arrayIndexText, out arrayIndex))
                        {
                            var foundArray = parentObj.GetNamedArray(arrayName);
                            if (arrayIndex < foundArray.Count)
                            {
                                foundValue = foundArray.GetObjectAt(arrayIndex);
                            }
                        }
                    }

                    if (foundValue == null)
                    {
                        break;
                    }
                }
                else
                {
                    if (parentObj.ContainsKey(name))
                    {
                        foundValue = parentObj.GetNamedValue(name);
                    }
                    else
                    {
                        foundValue = null;
                        break;
                    }
                }
            }

            return(foundValue);
        }
        public Obtenertitulosxcarrera_Result(IJsonValue jsonValue)
        {
            JsonObject jsonObject = jsonValue.GetObject();

            Titulo = jsonObject.GetNamedString("Titulo");
            Nombre = jsonObject.GetNamedString("Nombre");
        }
示例#13
0
        private void Process(out JsonObject jsonObj, IJsonValue jsonData)
        {
            switch (jsonData.ValueType)
            {
            case JsonValueType.Null:
                jsonObj = new JsonObject();
                break;

            case JsonValueType.Boolean:
                jsonObj = new JsonObject(jsonData.GetBoolean());
                break;

            case JsonValueType.Number:
                jsonObj = new JsonObject(jsonData.GetNumber());
                break;

            case JsonValueType.String:
                jsonObj = new JsonObject(jsonData.GetString());
                break;

            case JsonValueType.Array:
                jsonObj = new JsonObject(JsonObjectType.Array);
                ProcessArray(jsonObj, jsonData.GetArray());
                break;

            case JsonValueType.Object:
                jsonObj = new JsonObject(JsonObjectType.Object);
                ProcessObject(jsonObj, jsonData.GetObject());
                break;

            default:
                throw new Exception("意外情况");
            }
        }
        public SourceFeedViewModel(IJsonValue t) : base(t)
        {
            JsonObject token = t.GetObject();

            url = token.TryGetValue("url", out IJsonValue json) ? json.GetString() : $"/feed/{token["id"].ToString().Replace("\"", string.Empty)}";
            if (token["entityType"].GetString() != "article")
            {
                uurl          = token["userInfo"].GetObject()["url"].GetString();
                username      = token["userInfo"].GetObject()["username"].GetString();
                dateline      = Tools.ConvertTime(double.Parse(token["dateline"].ToString().Replace("\"", string.Empty)));
                message       = Tools.GetMessageText(token["message"].GetString());
                message_title = token.TryGetValue("message_title", out IJsonValue j) ? j.GetString() : string.Empty;
            }
            else
            {
                dateline      = Tools.ConvertTime(token["digest_time"].GetNumber());
                message       = Tools.GetMessageText(token["message"].GetString().Substring(0, 120) + "……<a href=\"\">查看更多</a>");
                message_title = token["title"].GetString();
            }
            showMessage_title = !string.IsNullOrEmpty(message_title);

            showPicArr = token.TryGetValue("picArr", out IJsonValue value) && value.GetArray().Count > 0 && !string.IsNullOrEmpty(value.GetArray()[0].GetString());
            if (showPicArr)
            {
                List <string> vs = new List <string>();
                foreach (var item in value.GetArray())
                {
                    vs.Add(item.GetString() + ".s.jpg");
                }
                picArr = vs.ToArray();
            }
        }
示例#15
0
        public TipoConvenio_Result(IJsonValue jsonValue)
        {
            JsonObject jsonObject = jsonValue.GetObject();

            Codigo = Convert.ToInt32(jsonObject.GetNamedNumber("Codigo"));
            Nombre = jsonObject.GetNamedString("Nombre");
        }
示例#16
0
        public SimpleFeedReplyViewModel(IJsonValue t)
        {
            JsonObject token = t.GetObject();

            id           = token["id"].GetNumber();
            uurl         = $"/u/{token["uid"].GetNumber()}";
            username     = token["username"].GetString();
            isFeedAuthor = token["isFeedAuthor"].GetNumber() == 1;
            rurl         = $"/u/{token["ruid"].GetNumber()}";
            rusername    = token["rusername"].GetString();
            if (showRuser)
            {
                message = $"<a href=\"{uurl}\">{username}{(isFeedAuthor ? "(楼主)" : string.Empty)}</a>@<a href=\"{rurl}\">{rusername}</a>:{token["message"].GetString()}";
            }
            else
            {
                message = $"<a href=\"{uurl}\">{username}{(isFeedAuthor ? "(楼主)" : string.Empty)}</a>:{token["message"].GetString()}";
            }
            showPic = token.TryGetValue("pic", out IJsonValue value) && !string.IsNullOrEmpty(value.GetString());
            if (showPic)
            {
                picUrl   = value.GetString();
                message += $" <a href=\"{picUrl}\">查看图片</a>";
            }
        }
示例#17
0
        public IndexPageViewModel(IJsonValue t) : base(t)
        {
            JsonObject token = t.GetObject();

            if (token.TryGetValue("entityTemplate", out IJsonValue v1))
            {
                entityTemplate = v1.GetString();
            }
            if (token.TryGetValue("title", out IJsonValue v2) && v2.ValueType == JsonValueType.String)
            {
                hasTitle = !string.IsNullOrEmpty(v2.GetString());
                if (hasTitle)
                {
                    title = v2.GetString();
                }
            }
            if (token.TryGetValue("url", out IJsonValue v3) && v3.ValueType == JsonValueType.String)
            {
                hasUrl = !string.IsNullOrEmpty(v3.GetString());
                if (hasUrl)
                {
                    url = v3.GetString();
                }
            }
            if (token.TryGetValue("description", out IJsonValue v4) && v4.ValueType == JsonValueType.String)
            {
                hasDescription = !string.IsNullOrEmpty(v4.GetString());
                if (hasDescription)
                {
                    description = v4.GetString();
                }
            }
            if (token.TryGetValue("entities", out IJsonValue v7) && v7.ValueType == JsonValueType.Array)
            {
                hasEntities = v7.GetArray().Count > 0;
                if (hasEntities)
                {
                    List <Entity> models = new List <Entity>();
                    foreach (var item in v7.GetArray())
                    {
                        JsonObject o = item.GetObject();
                        if (o["entityType"].GetString() == "feed")
                        {
                            models.Add(new FeedViewModel(item));
                        }
                        else if (o["entityType"].GetString() == "user")
                        {
                            models.Add(new UserViewModel(item));
                        }
                        else
                        {
                            models.Add(new IndexPageViewModel(item));
                        }
                    }
                    entities = models.ToArray();
                }
            }
            GetPic(token);
        }
示例#18
0
        public Requisitosadmision_Result(IJsonValue jsonValue)
        {
            JsonObject jsonObject = jsonValue.GetObject();

            Codigo       = jsonObject.GetNamedString("Codigo");
            Nombre       = jsonObject.GetNamedString("Nombre");
            Codigonombre = jsonObject.GetNamedString("Codigonombre");
        }
示例#19
0
 private void WriteJsonValue(JsonWriter writer, IJsonValue value)
 {
   switch (value.ValueType)
   {
     case JsonValueType.Array:
       {
         JsonArray a = value.GetArray();
         writer.WriteStartArray();
         for (int i = 0; i < a.Count; i++)
         {
           WriteJsonValue(writer, a[i]);
         }
         writer.WriteEndArray();
       }
       break;
     case JsonValueType.Boolean:
       {
         writer.WriteValue(value.GetBoolean());
       }
       break;
     case JsonValueType.Null:
       {
         writer.WriteNull();
       }
       break;
     case JsonValueType.Number:
       {
         // JsonValue doesn't support integers
         // serialize whole numbers without a decimal point
         double d = value.GetNumber();
         bool isInteger = (d % 1 == 0);
         if (isInteger && d <= long.MaxValue && d >= long.MinValue)
           writer.WriteValue(Convert.ToInt64(d));
         else
           writer.WriteValue(d);
       }
       break;
     case JsonValueType.Object:
       {
         JsonObject o = value.GetObject();
         writer.WriteStartObject();
         foreach (KeyValuePair<string, IJsonValue> v in o)
         {
           writer.WritePropertyName(v.Key);
           WriteJsonValue(writer, v.Value);
         }
         writer.WriteEndObject();
       }
       break;
     case JsonValueType.String:
       {
         writer.WriteValue(value.GetString());
       }
       break;
     default:
       throw new ArgumentOutOfRangeException("ValueType");
   }
 }
示例#20
0
        public Facultad_Result(IJsonValue jsonValue)
        {
            JsonObject jsonObject = jsonValue.GetObject();

            Entidad           = jsonObject.GetNamedString("Entidad");
            Descripcion_Corta = jsonObject.GetNamedString("Descripcion_Corta");
            Descripcion       = jsonObject.GetNamedString("Descripcion");
            Descripcion_Larga = jsonObject.GetNamedString("Descripcion_Larga");
        }
        public DyhViewModel(IJsonValue t) : base(t)
        {
            JsonObject token = t.GetObject();

            url       = token["url"].GetString();
            title     = token["title"].GetString();
            follownum = token["follownum"].GetString();
            logo      = new BitmapImage(new System.Uri(token["logo"].GetString()));
        }
示例#22
0
        private static object ConvertVariant(IJsonValue arg)
        {
            JsonObject obj = arg.GetObject();

            string          signatureString = obj.Keys.Single();
            ITypeDefinition signature       = AllJoynTypeDefinition.CreateTypeDefintions(signatureString).Single();

            return(Convert(signature, obj.Values.Single()));
        }
示例#23
0
        private void WriteJsonValue(JsonWriter writer, IJsonValue value)
        {
            switch (value.ValueType)
            {
            case JsonValueType.Array:
            {
                JsonArray a = value.GetArray();
                writer.WriteStartArray();
                for (int i = 0; i < a.Count; i++)
                {
                    WriteJsonValue(writer, a[i]);
                }
                writer.WriteEndArray();
            }
            break;

            case JsonValueType.Boolean:
            {
                writer.WriteValue(value.GetBoolean());
            }
            break;

            case JsonValueType.Null:
            {
                writer.WriteNull();
            }
            break;

            case JsonValueType.Number:
            {
                writer.WriteValue(value.GetNumber());
            }
            break;

            case JsonValueType.Object:
            {
                JsonObject o = value.GetObject();
                writer.WriteStartObject();
                foreach (KeyValuePair <string, IJsonValue> v in o)
                {
                    writer.WritePropertyName(v.Key);
                    WriteJsonValue(writer, v.Value);
                }
                writer.WriteEndObject();
            }
            break;

            case JsonValueType.String:
            {
                writer.WriteValue(value.GetString());
            }
            break;

            default:
                throw new ArgumentOutOfRangeException("ValueType");
            }
        }
示例#24
0
        public DyhViewModel(IJsonValue t) : base(t)
        {
            JsonObject token = t.GetObject();

            url       = token["url"].GetString();
            title     = token["title"].GetString();
            follownum = token["follownum"].ToString().Replace("\"", string.Empty);
            GetPic(token);
        }
示例#25
0
        public SimpleFeedReplyViewModel(IJsonValue t)
        {
            JsonObject token = t.GetObject();

            id           = token["id"].GetNumber();
            uurl         = $"/u/{token["uid"].GetNumber()}";
            username     = token["username"].GetString();
            isFeedAuthor = token["isFeedAuthor"].GetNumber() == 1;
            message      = Tools.GetMessageText($"<a href=\"{uurl}\">{username}{(isFeedAuthor ? "[楼主]" : string.Empty)}</a>:{token["message"].GetString()}");
        }
示例#26
0
 public static string GetNamedString(this IJsonValue value, string name, string defaultValue = null)
 {
     try
     {
         return(value.GetObject()[name].GetString());
     }
     catch (Exception)
     {
         return(defaultValue);
     }
 }
示例#27
0
 public static bool GetNamedBoolean(this IJsonValue value, string name, bool defaultValue = false)
 {
     try
     {
         return(value.GetObject()[name].GetBoolean());
     }
     catch (Exception)
     {
         return(defaultValue);
     }
 }
示例#28
0
 public static double GetNamedNumber(this IJsonValue value, string name, double defaultValue = -1d)
 {
     try
     {
         return(value.GetObject()[name].GetNumber());
     }
     catch (Exception)
     {
         return(defaultValue);
     }
 }
示例#29
0
 public static JsonArray GetNamedArray(this IJsonValue value, string name, JsonArray defaultValue = null)
 {
     try
     {
         return(value.GetObject()[name].GetArray());
     }
     catch (Exception)
     {
         return(defaultValue);
     }
 }
示例#30
0
 public static JsonArray GetJsonArrayFromJsonObj(IJsonValue obj,string propertyName)
 {
     try
     {
         return obj.GetObject()[propertyName].GetArray();
     }
     catch(Exception)
     {
         return null;
     }
 }
示例#31
0
 public static bool GetBooleanFromJsonObj(IJsonValue obj, string propertyName,bool defaultValue = false)
 {
     try
     {
         return obj.GetObject()[propertyName].GetBoolean();
     }
     catch (Exception)
     {
         return defaultValue;
     }
 }
        private ImageFormat JsonFormatToImageFormat(IJsonValue format)
        {
            JsonObject  jsonObject = format.GetObject();
            ImageFormat result     = new ImageFormat();

            result.JsonFormat = jsonObject;
            result.Format     = jsonObject.GetNamedString("Subtype");
            result.Height     = (int)jsonObject.GetNamedNumber("Height");
            result.Width      = (int)jsonObject.GetNamedNumber("Width");
            return(result);
        }
示例#33
0
 public static JsonObject GetJsonObjFromJsonObj(IJsonValue obj, string propertyName)
 {
     try
     {
         return(obj.GetObject()[propertyName].GetObject());
     }
     catch (Exception)
     {
         return(null);
     }
 }
示例#34
0
 public static double? GetNullableNumberFromJsonObj(IJsonValue obj, string propertyName, double? defaultValue = null)
 {
     try
     {
         return obj.GetObject()[propertyName].GetNumber();
     }
     catch (Exception)
     {
         return defaultValue;
     }
 }
 private void WriteJsonValue(JsonWriter writer, IJsonValue value)
 {
   switch (value.ValueType)
   {
     case JsonValueType.Array:
       {
         JsonArray a = value.GetArray();
         writer.WriteStartArray();
         for (int i = 0; i < a.Count; i++)
         {
           WriteJsonValue(writer, a[i]);
         }
         writer.WriteEndArray();
       }
       break;
     case JsonValueType.Boolean:
       {
         writer.WriteValue(value.GetBoolean());
       }
       break;
     case JsonValueType.Null:
       {
         writer.WriteNull();
       }
       break;
     case JsonValueType.Number:
       {
         writer.WriteValue(value.GetNumber());
       }
       break;
     case JsonValueType.Object:
       {
         JsonObject o = value.GetObject();
         writer.WriteStartObject();
         foreach (KeyValuePair<string, IJsonValue> v in o)
         {
           writer.WritePropertyName(v.Key);
           WriteJsonValue(writer, v.Value);
         }
         writer.WriteEndObject();
       }
       break;
     case JsonValueType.String:
       {
         writer.WriteValue(value.GetString());
       }
       break;
     default:
       throw new ArgumentOutOfRangeException("ValueType");
   }
 }
        private static object _jsonDeserialize_convert(IJsonValue json)
        {
            object obj = null;
            switch (json.ValueType)
            {
                case JsonValueType.Array:
                    JsonArray jsonArray = json.GetArray();
                    object[] objArray = new object[jsonArray.Count];
                    for (int i1 = 0; i1 < jsonArray.Count; i1++)
                    {
                        objArray[i1] = _jsonDeserialize_convert(jsonArray[i1]);
                    }
                    obj = objArray;
                    break;
                case JsonValueType.Boolean:
                    obj = json.GetBoolean();
                    break;
                case JsonValueType.Null:
                    obj = null;
                    break;
                case JsonValueType.Number:
                    obj = json.GetNumber();
                    break;
                case JsonValueType.Object:
                    JsonObject jsonObject = json.GetObject();

                    Dictionary<string, object> d = new Dictionary<string, object>();

                    List<string> keys = new List<string>();
                    foreach (var key in jsonObject.Keys)
                    {
                        keys.Add(key);
                    }

                    int i2 = 0;
                    foreach (var item in jsonObject.Values)
                    {
                        d.Add(keys[i2], _jsonDeserialize_convert(item));
                        i2++;
                    }
                    obj = d;
                    break;
                case JsonValueType.String:
                    obj = json.GetString();
                    break;
            }
            return obj;
        }
示例#37
0
 /// <summary>
 /// Usage : 
 /// like    var token = JsonParser.GetStringFromJsonObj(json, "token");
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="propertyName"></param>
 /// <returns></returns>
 public static string GetStringFromJsonObj(IJsonValue obj,string propertyName,string defaultValue=null)
 {
     try
     {
         if (obj.GetObject()[propertyName].ValueType == JsonValueType.String)
         {
             return obj.GetObject()[propertyName].GetString();
         }
         else if (obj.GetObject()[propertyName].ValueType == JsonValueType.Number)
         {
             return obj.GetObject()[propertyName].GetNumber().ToString();
         }
         else if (obj.GetObject()[propertyName].ValueType == JsonValueType.Boolean)
         {
             return obj.GetObject()[propertyName].GetBoolean() ? "true" : "false";
         }
         else throw new Exception();
     }
     catch(Exception)
     {
         return defaultValue;
     }
 }
示例#38
0
 dynamic Convert(IJsonValue json)
 {
     dynamic obj = null;
     switch (json.ValueType)
     {
         case JsonValueType.Array:
             obj = ConvertArray(json.GetArray());
             break;
         case JsonValueType.Boolean:
             obj = json.GetBoolean();
             break;
         case JsonValueType.Null:
             obj = null;
             break;
         case JsonValueType.Number:
             obj = json.GetNumber();
             break;
         case JsonValueType.Object:
             obj = new JsonToDynamic(json.GetObject());
             break;
         case JsonValueType.String:
             obj = json.GetString();
             break;
     }
     return obj;
 }
示例#39
0
 private void RenderValue(IJsonValue json, double indent)
 {
     switch (json.ValueType)
     {
         case JsonValueType.Array:
             RenderArray(json.GetArray(), indent);
             break;
         case JsonValueType.Object:
             RenderObject(json.GetObject(), indent);
             break;
         case JsonValueType.Null:
             AddInlines(new Run() { Text = "null", FontStyle = Windows.UI.Text.FontStyle.Italic, Foreground = BooleanBrush });
             break;
         case JsonValueType.Number:
             AddInlines(new Run() { Text = json.GetNumber().ToString(), Foreground = NumberBrush });
             break;
         case JsonValueType.String:
             AddInlines(new Run() { Text = "\"" + json.GetString() + "\"", Foreground = StringBrush });
             break;
         case JsonValueType.Boolean:
             AddInlines(new Run() { Text = json.GetBoolean().ToString(), Foreground = BooleanBrush });
             break;
     }
 }