C# 如何基于反序列化json设置类?
我返回了这个json,我正试图在c#中为其创建一个类。基于我试图使用的json,我似乎无法获得正确的映射 我尝试复制json,然后在VisualStudio中执行“粘贴特殊->粘贴json作为类”选项,但这并没有奏效。say class.value中返回的数据为空C# 如何基于反序列化json设置类?,c#,json,asp.net-mvc,C#,Json,Asp.net Mvc,我返回了这个json,我正试图在c#中为其创建一个类。基于我试图使用的json,我似乎无法获得正确的映射 我尝试复制json,然后在VisualStudio中执行“粘贴特殊->粘贴json作为类”选项,但这并没有奏效。say class.value中返回的数据为空 { "status": { "type": "success", "code": 200, "message": "Success", "error": fals
{
"status": {
"type": "success",
"code": 200,
"message": "Success",
"error": false
},
"data": [
{
"status": "Authenticated",
"expires_at": "2019/10/09 11:48:08 +0000",
"user": {
"username": "xxxx",
"email": "xxxx@yahoo.com",
"firstname": "Steve",
"id": 11111,
"lastname": "xxxx"
},
"session_token": "XXXX",
"return_to_url": null
}
]
}
任何出发点都很好。谢谢。公共类JsonClass
public class JsonClass
{
public JsonClass(){}
public ResponseStatus status { get; set; }
public IEnumerable<ResponseData> data {get; set;}
}
public class ResponseStatus
{
public ResponseStatus(){}
public string type {get; set;}
public int code {get; set;}
public string message {get; set;}
public bool error {get; set;}
}
public class ResponseData
{
public string status {get; set;}
public DateTime expires_at {get; set;}
public ResponseUser user {get; set;}
public string session_token {get; set;}
public string return_to_url {get; set;}
}
public class ResponseUser
{
public string username {get; set;}
public string email {get; set;}
public string firstname {get; set;}
public string lastname {get; set;}
public int id {get; set;}
}
{
公共JsonClass(){}
公共响应状态{get;set;}
公共IEnumerable数据{get;set;}
}
公共阶级责任
{
公共响应状态(){}
公共字符串类型{get;set;}
公共整数代码{get;set;}
公共字符串消息{get;set;}
公共布尔错误{get;set;}
}
公共类响应数据
{
公共字符串状态{get;set;}
公共日期时间在{get;set;}过期
公共响应用户{get;set;}
公共字符串会话_标记{get;set;}
公共字符串返回到url{get;set;}
}
公共类应答器
{
公共字符串用户名{get;set;}
公共字符串电子邮件{get;set;}
公共字符串名{get;set;}
公共字符串lastname{get;set;}
公共int id{get;set;}
}
使用类似Json.NET的内容:
var response=JsonConvert.DeserializeObject(json);
我在工作和个人项目中大量使用Json.NET。你可以在这里找到更多的信息
因此,实际上您所做的只是使用属性定义类,这些属性将映射到所提供的JSON数组/对象结构。然后利用像Json.NET这样的库,您可以利用
JsonConvert.SerializeObject(Object)来回映射它们
或JsonConvert.DeserializeObject(jsonString)代码>您可以使用从创建c#类json@evgiv0老实说,我不推荐它。特别是如果JSON包含字典等类型,那么您创建了哪些类粘贴JSON,因为这些类对您的JSON非常有用。您是否可以编辑您的问题以包含您生成的类,以及显示您如何尝试将JSON反序列化到这些类中?如果我们能看到你在做什么,帮助会容易得多。谢谢你的所有投入,但我已经成功了。我把它们都放在类中,当我试图反序列化json对象时,我仍然引用一个我不再使用的旧类。它确实使用json2csharp和visual stuido工作
var response = JsonConvert.DeserializeObject<JsonClass>(json);