У меня очень простая программа, которая получает блоб json и должна десериализовать его в объект (пользователи могут сами определять структуру, поэтому не могут ее набирать).
При десериализации по какой-то причине даже маленькие числа превращаются в длинные.
Вот пример:
using System.Collections.Generic;
using Newtonsoft.Json;
public class Jsontest
{
public static void testJson()
{
var simpleString = "[{\"name\":\"Item 1\",\"check\":1,\"num\":2}]";
var list = new List<CustomObj>();
list.AddRange(JsonConvert.DeserializeObject<IEnumerable<CustomObj>>(simpleString));
return list;
}
}
public class CustomObj
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonExtensionData]
public IDictionary<string, object> PropertyValues { get; set; }
}
При нажатии на точку останова возврата я получаю эти данные: ( Приносим извинения за плохую визуализацию, также показанную В Visual Studio )
PropertyValues Count = 2 System.Collections.Generic.IDictionary<string, object> {System.Collections.Generic.Dictionary<string, object>}
- [0] {[check, 1]} System.Collections.Generic.KeyValuePair<string, object>
Key "check" string
Value 1 object {long}
- [1] {[num, 2]} System.Collections.Generic.KeyValuePair<string, object>
Key "num" string
Value 2 object {long}
Эти данные используются в другой сборке, где я ожидаю, что это будет int, но выглядит как длинный. Есть идеи, что я здесь делаю не так?