Json. Net десериализация 1 для объекта с типом long - PullRequest
0 голосов
/ 22 января 2020

У меня очень простая программа, которая получает блоб 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, но выглядит как длинный. Есть идеи, что я здесь делаю не так?

...