JSon.NET DeserializeObject <Список <T>> не возвращающий список, ни дающий ошибку

Я застрял с библиотекой Json.NET и ее методом DeserializeObject. Документация является не совсем четкой с тем, что могло происходить здесь, таким образом, я буду ценить, если кто-то мог бы объяснить, как достигнуть для десериализации JSON в список Пользовательских объектов.

Я пытаюсь десериализовать этот JSON

[
    {"userid":"0",
     "listid":1,
     "lastname":"Mann",
     "inplace":true,
     "xpos":428,
     "ypos":111
    },
    {"userid":"1",
     "listid":1,
     "lastname":"Parker",
     "inplace":true,
     "xpos":334,
     "ypos":154
    },
    {"userid":"2",
     "listid":1,
     "lastname":"Terry",
     "inplace":true,
     "xpos":513,
     "ypos":160
    }
]

в Пользовательский объект

[JsonObject(MemberSerialization.OptIn)]
public class User
{
    [JsonProperty(PropertyName = "userid")]
    public string userid { get; set; }
    [JsonProperty(PropertyName = "listid")]
    public int listid { get; set; }
    [JsonProperty(PropertyName = "lastname")]
    public string lastname { get; set; }
    [JsonProperty(PropertyName = "inplace")]
    public bool inplace { get; set; }
    [JsonProperty(PropertyName = "xpos")]
    public int xpos { get; set; }
    [JsonProperty(PropertyName = "ypos")]
    public int ypos { get; set; }

    public User()
    {
    }
}

использование

List<User> users = JsonConvert.DeserializeObject<List<User>>(jsonUsers);

без успеха. Не получая ошибки, ни пользователей. JsonConvert. DeserializeObject просто умирает тихо.

Я пытался создать макет и сделать SerializeObject и DeserializeObject с этим строка JSON, но с тем же результатом, никакими ошибками, никакими результатами.

Я даже пытаюсь передать serializersettings чтобы se что не так, но без ошибок также

JsonSerializerSettings settings = new JsonSerializerSettings();

settings.Error += delegate(object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args) {
                    errorList.Add(args.ErrorContext.Error.Message);
              };
List<User> users = JsonConvert.DeserializeObject<List<User>>(jsonUsers, settings);

Когда я пытаюсь видеть то, что происходит во время десериализации, я замечаю, что контекст не инициализируется?!

public class User
{
    ...
    [OnDeserializing]
    internal void OnDeserializing(StreamingContext context) {
    }
}

Что я делаю неправильно здесь? И как я могу десериализовать это в список Пользователей?

7
задан user284258 11 May 2010 в 18:23
поделиться

1 ответ

Я обнаружил, в чем проблема. JSon.NET десериализовал мои целые числа из JSON в Int64 вместо Int32, поэтому вместо int я поставил long, и все работало так, как должно было в первую очередь.

Есть ли способ указать, что я хочу, чтобы эти свойства десериализовались в int?

7
ответ дан 6 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: