ReadAsInt32() public method

Reads the next JSON token from the stream as a Nullable{T} of Int32.
public ReadAsInt32 ( ) : int?
return int?
示例#1
0
        /// <summary>
        /// Reads the json.
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <param name="objectType">Type of the object.</param>
        /// <param name="existingValue">The existing value.</param>
        /// <param name="serializer">The serializer.</param>
        /// <returns>The object instance.</returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            int? r = reader.ReadAsInt32();
            int? g = reader.ReadAsInt32();
            int? b = reader.ReadAsInt32();
            int? a = reader.ReadAsInt32();
            if (reader.Read() && r.HasValue && g.HasValue && b.HasValue && a.HasValue)
            {
                return new Color { R = (byte)r.Value, G = (byte)g.Value, B = (byte)b.Value, A = (byte)a.Value };
            }

            return existingValue;
        }
 public override Vector2Int ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, Vector2Int existingValue, bool hasExistingValue, JsonSerializer serializer)
 {
     if (reader.TokenType == JsonToken.StartObject)
     {
         JObject item = JObject.Load(reader);
         existingValue.x = item["X"].Value <int>();
         existingValue.y = item["Y"].Value <int>();
     }
     else
     {
         existingValue.x = reader.ReadAsInt32().Value;
         existingValue.y = reader.ReadAsInt32().Value;
     }
     return(existingValue);
 }
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
      int? value = reader.ReadAsInt32();
      if (value == null)
        return null;

      return (TimeSpan?)TimeSpan.FromMilliseconds (value.Value * 100);
    }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            //reader.Read();
            var obj = new Filter();
            obj.Name = reader.ReadAsString();
            obj.Count = reader.ReadAsInt32().GetValueOrDefault();

            reader.Read();

            return obj;
        }
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
 {
     PocketArticles pocketArticles1 = new PocketArticles();
     int? nullable;
     while (reader.Read())
     {
         if (reader.Value != null)
         {
             switch (reader.Path)
             {
                 case "status":
                     PocketArticles pocketArticles2 = pocketArticles1;
                     nullable = reader.ReadAsInt32();
                     int valueOrDefault1 = nullable.GetValueOrDefault();
                     pocketArticles2.Status = valueOrDefault1;
                     break;
                 case "complete":
                     PocketArticles pocketArticles3 = pocketArticles1;
                     nullable = reader.ReadAsInt32();
                     int valueOrDefault2 = nullable.GetValueOrDefault();
                     pocketArticles3.Complete = valueOrDefault2;
                     break;
                 case "list":
                     pocketArticles1.Articles = serializer.Deserialize<IEnumerable<IPocketArticle>>(reader);
                     break;
                 case "since":
                     PocketArticles pocketArticles4 = pocketArticles1;
                     nullable = reader.ReadAsInt32();
                     int valueOrDefault3 = nullable.GetValueOrDefault();
                     pocketArticles4.Since = valueOrDefault3;
                     break;
             }
         }
     }
     reader.Read();
     return (object) pocketArticles1;
 }
        /// <summary>
        /// Reads the JSON representation of the object.
        /// </summary>
        /// <param name="reader">The <see cref="JsonReader"/> to read from.</param>
        /// <param name="objectType">Type of the object.</param>
        /// <param name="existingValue">The existing value of object being read.</param>
        /// <param name="serializer">The calling serializer.</param>
        /// <returns>The object value.</returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader == null) throw new ArgumentNullException("reader");
            if (objectType == null) throw new ArgumentNullException("objectType");

            if (reader.TokenType == JsonToken.Null)
            {
                return null;
            }

            if (reader.TokenType != JsonToken.StartArray)
            {
                throw new JsonException(string.Format(CultureInfo.InvariantCulture, "Expected StartArray token not {0}", reader.TokenType));
            }

            var dt = existingValue as DataTable;

            if (dt == null)
            {
                // handle typed datasets
                dt = (objectType == typeof(DataTable))
                       ? new DataTable()
                       : (DataTable)Activator.CreateInstance(objectType);

                dt.Locale = CultureInfo.CurrentCulture;
            }

            var columnTypes = new List<DataType>();

            reader.Read(); // Move from StartArray to StartObject

            if (reader.TokenType != JsonToken.StartObject)
            {
                throw new JsonException(string.Format(CultureInfo.InvariantCulture, "Expected StartObject token not {0}", reader.TokenType));
            }

            reader.Read(); // move from StartObject to PropertyName

            if (reader.TokenType != JsonToken.PropertyName)
            {
                throw new JsonException(string.Format(CultureInfo.InvariantCulture, "Expected PropertyName token not {0}", reader.TokenType));
            }

            while (reader.TokenType == JsonToken.PropertyName)
            {
                var columnName = (string)reader.Value;

                reader.ReadAsInt32();

                var dataType = (int)reader.Value;

                dt.Columns.Add(new DataColumn(columnName, TypeFromDataType(dataType)));

                columnTypes.Add((DataType)dataType);

                reader.Read();
            }

            if (reader.TokenType != JsonToken.EndObject)
            {
                throw new JsonException(string.Format(CultureInfo.InvariantCulture, "Expected EndObject token not {0}", reader.TokenType));
            }

            reader.Read();

            // If there are no rows in this table, we might actually be at the end of our object
            // so just move on
            if (reader.TokenType == JsonToken.StartArray)
            {
                while (reader.TokenType == JsonToken.StartArray)
                {
                    var row = dt.NewRow();

                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        ReadByDataType(reader, columnTypes[i]);

                        if (reader.TokenType == JsonToken.Null)
                        {
                            row[i] = DBNull.Value;
                        }
                        else
                        {
                            row[i] = reader.Value;
                        }
                    }

                    row.EndEdit();

                    dt.Rows.Add(row);

                    // We've finished reading all of the columns, so the next this we read should
                    // be at the should be an EndArray token
                    reader.Read();

                    if (reader.TokenType != JsonToken.EndArray)
                    {
                        throw new JsonException(string.Format(CultureInfo.InvariantCulture,
                            "Expected EndArray token not {0}.  It is possible that there is a column count mismatch",
                            reader.TokenType));
                    }

                    reader.Read(); // This should be the start array element, but could be the end of the enclosing array
                }
            }

            if (reader.TokenType != JsonToken.EndArray)
            {
                throw new JsonException(string.Format(CultureInfo.InvariantCulture, "Expected EndArray token not {0}", reader.TokenType));
            }

            return dt;
        }
        private static void ReadByDataType(JsonReader reader, DataType dataType)
        {
            switch (dataType)
            {
                case DataType.String:
                    reader.ReadAsString();
                    break;

                case DataType.Int16:
                case DataType.Int32:
                    reader.ReadAsInt32();
                    break;

                case DataType.ByteArray:
                    reader.ReadAsBytes();
                    break;

                case DataType.Decimal:
                    reader.ReadAsDecimal();
                    break;

                case DataType.DateTime:
                    reader.ReadAsDateTime();
                    break;

                // These types are dealt with, but there's no explicit reader method for them
                // so we just have to trust that it does the right thing.
                case DataType.Byte:
                case DataType.Int64:
                case DataType.Boolean:
                case DataType.Float:
                case DataType.Double:
                    reader.Read();
                    break;
            }
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var list = new List<IPocketArticle>();
              var pocketArticle = new PocketArticle();
              while (reader.Read())
              {
            if (reader.Value != null)
            {
              string[] strArray = reader.Path.Split('.');

              switch (strArray[strArray.Count() - 1])
              {
            case "item_id":
              pocketArticle.ItemId = reader.ReadAsString();
              break;
            case "resolved_id":
              pocketArticle.ResolvedId = reader.ReadAsString();
              break;
            case "given_url":
              pocketArticle.GivenUrl = reader.ReadAsString();
              break;
            case "given_title":
              pocketArticle.GivenTitle = reader.ReadAsString();
              break;
            case "favorite":
              pocketArticle.Favorite = reader.ReadAsString();
              break;
            case "status":
              pocketArticle.Status = reader.ReadAsString();
              break;
            case "time_added":
              pocketArticle.TimeAdded = reader.ReadAsString();
              break;
            case "time_updated":
              pocketArticle.TimeUpdated = reader.ReadAsString();
              break;
            case "time_read":
              pocketArticle.TimeRead = reader.ReadAsString();
              break;
            case "time_favorited":
              pocketArticle.TimeFavorited = reader.ReadAsString();
              break;
            case "sort_id":
              pocketArticle.SortId = reader.ReadAsInt32().GetValueOrDefault();
              break;
            case "resolved_title":
              pocketArticle.ResolvedTitle = reader.ReadAsString();
              break;
            case "resolved_url":
              pocketArticle.ResolvedUrl = reader.ReadAsString();
              break;
            case "excerpt":
              pocketArticle.Excerpt = reader.ReadAsString();
              break;
            case "is_article":
              pocketArticle.IsArticle = reader.ReadAsString();
              break;
            case "is_index":
              pocketArticle.IsIndex = reader.ReadAsString();
              break;
            case "has_video":
              pocketArticle.HasVideo = reader.ReadAsString();
              break;
            case "has_image":
              pocketArticle.HasImage = reader.ReadAsString();
              break;
            case "word_count":
              pocketArticle.WordCount = reader.ReadAsString();
              break;
              }
            }
            else
            {
              if (!string.IsNullOrEmpty(pocketArticle.ItemId))
            list.Add(pocketArticle);
              pocketArticle = new PocketArticle();
            }
              }
              return list;
        }
 private bool ReadForType(JsonReader reader, JsonContract contract, bool hasConverter)
 {
   if (hasConverter)
     return reader.Read();
   switch (contract != null ? (int) contract.InternalReadType : 0)
   {
     case 0:
       while (reader.Read())
       {
         if (reader.TokenType != JsonToken.Comment)
           return true;
       }
       return false;
     case 1:
       reader.ReadAsInt32();
       break;
     case 2:
       reader.ReadAsBytes();
       break;
     case 3:
       reader.ReadAsString();
       break;
     case 4:
       reader.ReadAsDecimal();
       break;
     case 5:
       reader.ReadAsDateTime();
       break;
     default:
       throw new ArgumentOutOfRangeException();
   }
   return reader.TokenType != JsonToken.None;
 }
示例#10
0
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
 {
     var corner = new TerrainCorner();
     if (reader.TokenType != JsonToken.StartArray) return new TerrainCorner?();
     corner.TopLeft = reader.ReadAsInt32() ?? 0;
     corner.TopRight = reader.ReadAsInt32() ?? 0;
     corner.BottomLeft = reader.ReadAsInt32() ?? 0;
     corner.BottomRight = reader.ReadAsInt32() ?? 0;
     reader.Read();
     if (reader.TokenType != JsonToken.EndArray) return new TerrainCorner?();
     return corner;
 }
示例#11
0
        /// <summary>
        /// Reads the JSON representation of the object.
        /// </summary>
        /// <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader" /> to read from.</param>
        /// <param name="objectType">Type of the object.</param>
        /// <param name="existingValue">The existing value of object being read.</param>
        /// <param name="serializer">The calling serializer.</param>
        /// <returns>
        /// The object value.
        /// </returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            ActionBase action = null;
            var condition = Condition.Equals;
            var actionName = string.Empty;
            var path = string.Empty;
            var value = string.Empty;
            var text = string.Empty;
            var expectedValue = string.Empty;
            var expectedText = string.Empty;
            var seconds = 0;

            while (reader.Read() && reader.TokenType != JsonToken.EndObject)
            {
                if (reader.TokenType == JsonToken.PropertyName)
                {
                    switch (reader.Value as string)
                    {
                        case "action":
                            actionName = reader.ReadAsString();
                            break;

                        case "path":
                            path = reader.ReadAsString();
                            break;

                        case "value":
                            value = reader.ReadAsString();
                            break;

                        case "text":
                            text = reader.ReadAsString();
                            break;

                        case "expectedValue":
                            expectedValue = reader.ReadAsString();
                            break;

                        case "expectedText":
                            expectedText = reader.ReadAsString();
                            break;

                        case "condition":
                            condition = (Condition)Enum.Parse(typeof (Condition), reader.ReadAsString(), true);
                            break;

                        case "seconds":
                            seconds = reader.ReadAsInt32() ?? 10;
                            break;
                    }
                }
            }

            switch (actionName)
            {
                case "click":
                    action = new ClickAction { Condition = condition, Path = path, Text = text, Value = value };
                    break;

                case "enterKey":
                    action = new EnterKeyAction { Condition = condition, Path = path, Text = text, Value = value };
                    break;

                case "navigateTo":
                    action = new NavigateToAction { Path = path };
                    break;

                case "selectItem":
                    action = new SelectItemAction { Condition = condition, Path = path, Text = text, Value = value };
                    break;

                case "setText":
                    action = new SetTextAction { Path = path, Value = value };
                    break;

                case "test":
                    action = new TestAction { Condition = condition, Path = path, ExpectedText = expectedText, ExpectedValue = expectedValue };
                    break;

                case "wait":
                    action = new WaitAction { Seconds = seconds };
                    break;
            }

            return action;
        }
示例#12
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var result = new UTorrentTorrent();

            result.Hash = reader.ReadAsString();
            result.Status = (UTorrentTorrentStatus)reader.ReadAsInt32();
            result.Name = reader.ReadAsString();
            reader.Read();
            result.Size = (long)reader.Value;
            result.Progress = (int)reader.ReadAsInt32() / 1000.0;
            reader.Read();
            result.Downloaded = (long)reader.Value;
            reader.Read();
            result.Uploaded = (long)reader.Value;
            result.Ratio = (int)reader.ReadAsInt32() / 1000.0;
            result.UploadSpeed = (int)reader.ReadAsInt32();
            result.DownloadSpeed = (int)reader.ReadAsInt32();

            result.Eta = (int)reader.ReadAsInt32();
            result.Label = reader.ReadAsString();
            result.PeersConnected = (int)reader.ReadAsInt32();
            result.PeersInSwarm = (int)reader.ReadAsInt32();
            result.SeedsConnected = (int)reader.ReadAsInt32();
            result.SeedsInSwarm = (int)reader.ReadAsInt32();
            result.Availablity = (int)reader.ReadAsInt32() / 65536.0;
            result.TorrentQueueOrder = (int)reader.ReadAsInt32();
            reader.Read();
            result.Remaining = (long)reader.Value;

            reader.Read();

            // Builds before 25406 don't return the remaining items.

            if (reader.TokenType != JsonToken.EndArray)
            {
                result.DownloadUrl = (string)reader.Value;
            
                reader.Read();
                result.RssFeedUrl = reader.Value;
                reader.Read();
                result.StatusMessage = reader.Value;
                reader.Read();
                result.StreamId = reader.Value;
                reader.Read();
                result.DateAdded = reader.Value;
                reader.Read();
                result.DateCompleted = reader.Value;
                reader.Read();
                result.AppUpdateUrl = reader.Value;
                result.RootDownloadPath = reader.ReadAsString();
                reader.Read();
                result.Unknown27 = reader.Value;
                reader.Read();
                result.Unknown28 = reader.Value;
            
                while(reader.TokenType != JsonToken.EndArray)
                    reader.Read();
            }

            return result;
        }
示例#13
0
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer)
 {
     List<Vector3> points = new List<Vector3>();
     reader.Read();
     int seed = (int)reader.ReadAsInt32();
     reader.Read();
     reader.Read();
     reader.Read();
     while (reader.TokenType != JsonToken.EndArray)
     {
         float x = (float)reader.ReadAsDecimal();
         float y = (float)reader.ReadAsDecimal();
         float z = (float)reader.ReadAsDecimal();
         points.Add(new Vector3(x, y, z));
         reader.Read();
         reader.Read();
     }
     reader.Read();
     return new PointSet(points.ToArray(), seed);
 }