Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何基于反序列化json设置类?_C#_Json_Asp.net Mvc - Fatal编程技术网

C# 如何基于反序列化json设置类?

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

我返回了这个json,我正试图在c#中为其创建一个类。基于我试图使用的json,我似乎无法获得正确的映射

我尝试复制json,然后在VisualStudio中执行“粘贴特殊->粘贴json作为类”选项,但这并没有奏效。say class.value中返回的数据为空

{
    "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);