gpt4 book ai didi

c# - 使用 Json.NET 将 JSON 反序列化为对象

转载 作者:IT老高 更新时间:2023-10-28 12:52:43 24 4
gpt4 key购买 nike

我正在玩新的 StackOverflow API .不幸的是,我的 JSON 有点弱,所以我需要一些帮助。

我正在尝试反序列化用户的这个 JSON:

  {"user":{
"user_id": 1,
"user_type": "moderator",
"creation_date": 1217514151,
"display_name": "Jeff Atwood",
...
"accept_rate": 100
}}

放入我用 JsonProperty 属性装饰的对象中:

[JsonObject(MemberSerialization.OptIn)]
public class User
{
[JsonProperty("user_id", Required = Required.Always)]
public virtual long UserId { get; set; }

[JsonProperty("display_name", Required = Required.Always)]
public virtual string Name { get; set; }

...
}

我得到以下异常:

Newtonsoft.Json.JsonSerializationException:Required property 'user_id' not foundin JSON.

这是因为 JSON 对象是一个数组吗?如果是这样,我如何将其反序列化为一个 User 对象?

提前致谢!

最佳答案

如果您不想创建包装类,您也可以通过这种方式访问​​用户:

String jsonString = "{\"user\":{\"user_id\": 1, \"user_type\": \"moderat...";
JToken root = JObject.Parse(jsonString);
JToken user = root["user"];
User deserializedUser = JsonConvert.DeserializeObject<User>(user.ToString());

this page in the Json.NET doc了解详情。

关于c# - 使用 Json.NET 将 JSON 反序列化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com