我应该将这个JSON解析成哪个对象?

时间:2015-08-13 20:50:13

标签: c# asp.net json json.net

我正在使用安装了JSON.net包的ASP.NET C#。我有一些JSON:

{
    "ROWSET": {
        "ROW": {
            "A_ONLINE_PO_COUNT": 0,
            "A_OFFLINE_PO_COUNT": 0,
            "A_NEW_MESSAGE_COUNT": 0,
            "A_PASSWORD_EXPIRE_DAYS": 9,
            "PO_REPORTS": {
                "PO_REPORTS_ROW": {
                    "PO_REPORT_PARAMETER_ID": 1575,
                    "DESCRIPTION": "TESTING SAVE"
                }
            },
            "RECV_REPORTS": "\n  ",
            "BUDGET_REPORTS": "\n  ",
            "VARIANCE_REPORTS": "\n  "
        }
    }
}

并且想知道我究竟能把它解析成什么对象?如果是JavaScript,可以很容易地将其粘贴到var result并通过result.ROWSET.ROW.A_ONLINE_PO_COUNT访问(例如)在线PO计数。

在C#中有类似的方法吗?我不知道将其反序列化为哪个对象。

1 个答案:

答案 0 :(得分:4)

您可以使用this site生成课程

public class POREPORTSROW
{
    public int PO_REPORT_PARAMETER_ID { get; set; }
    public string DESCRIPTION { get; set; }
}

public class POREPORTS
{
    public POREPORTSROW PO_REPORTS_ROW { get; set; }
}

public class ROW
{
    public int A_ONLINE_PO_COUNT { get; set; }
    public int A_OFFLINE_PO_COUNT { get; set; }
    public int A_NEW_MESSAGE_COUNT { get; set; }
    public int A_PASSWORD_EXPIRE_DAYS { get; set; }
    public POREPORTS PO_REPORTS { get; set; }
    public string RECV_REPORTS { get; set; }
    public string BUDGET_REPORTS { get; set; }
    public string VARIANCE_REPORTS { get; set; }
}

public class ROWSET
{
    public ROW ROW { get; set; }
}

public class RootObject
{
    public ROWSET ROWSET { get; set; }
}

您也可以反序列化为dynamic并在Javascript中使用它

dynamic obj = JsonConvert.DeserializeObject(json);
Console.WriteLine(obj.ROWSET.ROW.A_ONLINE_PO_COUNT);