序列化 – JSon.NET DeserializeObject>不返回列表也不给出错误

前端之家收集整理的这篇文章主要介绍了序列化 – JSon.NET DeserializeObject>不返回列表也不给出错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了Json.NET库及其DeserializeObject方法.文档对于这里可能发生的事情并不十分清楚,所以如果有人能够解释如何将 JSON反序列化为User对象列表,我将不胜感激.

我正在尝试反序列化这个JSON

[
    {"userid":"0","listid":1,"lastname":"Mann","inplace":true,"xpos":428,"ypos":111
    },{"userid":"1","lastname":"Parker","xpos":334,"ypos":154
    },{"userid":"2","lastname":"Terry","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只是默默地死去.

我尝试创建模型并使用该JSON字符串执行SerializeObject和DeserializeObject,但结果相同,没有错误,没有结果.

我甚至尝试传递serializersettings以便找出错误但没有错误

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) {
    }
}

我在这里做错了什么?我如何将其反序列化为用户列表?

我发现了什么问题. JSon.NET将我的整数从JSON反序列化到Int64而不是Int32,所以我把它放在long而且一切都按照它应该首先运行.

有没有办法指定我希望该属性反序列化为int?

原文链接:https://www.f2er.com/json/288475.html

猜你在找的Json相关文章