c# - C# 将 json 转换为多个类
问题描述
我有个问题。我正在尝试将我的 json 解析为 2 个类。这是json:
{
"user":[
[
{
"Id":"0",
"Username":"Vreeswijk",
"ProfilePicture":"media/user/0.png"
}
]
],
"token":[
[
{
"access_token":"myToken1",
"refresh_token":"myToken2",
"expires_in":3600,
"expires_on":1577363756
}
]
]
}
这是我的 2 节课:
public class Token
{
public string access_token { get; set; }
public string refresh_token { get; set; }
public int expire_in { get; set; }
public int expire_on { get; set; }
public Token() { }
}
这是用户类:
public class User
{
[PrimaryKey]
public int Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string ProfilePicture { get; set; }
public User() { }
public User(string Username, string Password)
{
this.Username = Username;
this.Password = Password;
}
}
现在我想将 json 反序列化为这两个类。这是我的代码,现在仅适用于 1 类:
var jObject = JObject.Parse(json);
var userPropery = jObject["user"] as JArray;
userList= new List<user>();
foreach (var property in userPropery )
{
var propertyList = JsonConvert.DeserializeObject<List<user>>(property.ToString());
userList.AddRange(propertyList);
}
我怎样才能使这项工作适用于 1 个 json 中的 2 个类?
解决方案
您可以为您的 json 创建一个Root
类,并根据需要在其中添加两个属性User
和Token
类。
public class Root
{
public List<List<User>> Users { get; set; }
public List<List<Token>> Tokens { get; set; }
}
然后在函数中传递这个类DeserializeObject
来反序列化json。
推荐阅读
- python - 所以我正在制作这个文件加密器和解密器,现在我正在尝试使用 Tkinter GUI 使它成为一个应用程序。得到这个错误
- flutter - 在小部件而不是屏幕之间颤动英雄动画
- windows - 如何在 powershell 中为 get-netroute 创建一个变量以输入当前环境设置
- google-cloud-platform - 尝试运行一个 gcloud 命令,该命令将列出 VM 实例并显示它们自创建日期以来的天数
- file - 电话机。以消息形式接收文件
- node.js - 在 chrome 开发工具中选择元素之前,Puppeteer 无法使用 xPath contains(text()) 找到元素
- c# - 手动触发并等待 Quartz.Net 作业
- python - 如何在 QStackedWidget 中刷新/重新初始化小部件
- python - 链接在下载弹出窗口中打开,但复制和粘贴时不起作用
- python - 根据与数据框中另一列的匹配,按数据框的列值替换列表中的元素