JSON字符串到C#对象 [英] Json string to c# object

查看:190
本文介绍了JSON字符串到C#对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图解析JSON字符串到C#类对象。我有在C#中三班,我从服务中获取JSON字符串和我编码存储此JSON字符串到SQL表。我要解析JSON字符串成多类在C#中的一个问题。我使用newtonsoft.json解析。
我有以下的JSON字符串

I'm trying to parse json string to c# class objects. I'm having three class in c# and i'm getting json string from service and i'm coding to store this json string into sql table. I have a problem to parse json string into multiple classes in c#. I'm using newtonsoft.json to parse. I'm having following json string

{
    "receipt_cr": {
        "VchNo": [
            "CR::00001",
            "CR::00002",
            "CR::00003",
            "CR::00004",
            "CR::00005"
        ],
        "VoucherName": [
            "Receipt",
            "Receipt",
            "Receipt",
            "Receipt",
            "Receipt"
        ],
        "VchDate": [
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00"
        ],
        "LedgerName": [
            "xxxxxx",
            "yyyyy",
            "ssssss",
            "rrrrrrr",
            "wwwwwww"
        ],
        "UnderGroup": [
            "Sundry Debtors",
            "Sundry Debtors",
            "Sundry Debtors",
            "Sundry Debtors",
            "Sundry Debtors"
        ],
        "AgnstRefNumber": [
            "",
            "",
            "",
            "",
            ""
        ],
        "NetAmount": [
            "2973500.00",
            "2973500.00",
            "5967015.00",
            "8968432.00",
            "5980000.00"
        ],
        "AgnstReferenceAmount": [
            "",
            "",
            "",
            "",
            ""
        ],
        "CostCentreName": [
            "",
            "",
            "",
            "",
            ""
        ],
        "CostCategory": [
            "",
            "",
            "",
            "",
            ""
        ],
        "Status ": [
            "NI",
            "NI",
            "NI",
            "NI",
            "NI"
        ]
    },
    "receipt_dr": {
        "VchNo": [
            "CR::00001",
            "CR::00002",
            "CR::00003",
            "CR::00004",
            "CR::00004"
        ],
        "VoucherName": [
            "Receipt",
            "Receipt",
            "Receipt",
            "Receipt",
            "Receipt"
        ],
        "VchDate": [
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00"
        ],
        "CashBankLedger": [
            "Bank",
            "Bank",
            "Bank",
            "Bank",
            "Bank"
        ],
        "UnderGroup": [
            "BankAccount",
            "BankAccount",
            "BankAccount",
            "BankAccount",
            "BankAccount"
        ],
        "Amount": [
            "2973500.00",
            "2973500.00",
            "5967015.00",
            "2989477.00",
            "2989477.00"
        ],
        "TransactionType": [
            "cheque",
            "RTGS",
            "cheque",
            "cheque",
            "cheque"
        ],
        "InstrumentNo": [
            "1",
            "2",
            "3",
            "4",
            "5"
        ],
        "Date": [
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00"
        ],
        "BankName": [
            "Axis - 230",
            "Axis - 230",
            "Axis - 230",
            "Axis - 230",
            "Axis - 230"
        ],
        "BankBranch": [
            "Avinashi Road",
            "Avinashi Road",
            "Avinashi Road",
            "Avinashi Road",
            "Avinashi Road"
        ],
        "BankDate": [
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00",
            "2013-04-02 00:00:00"
        ],
        "Narration": [
            "",
            "",
            "",
            "",
            ""
        ]
    },
    "payment_dr": {
        "VchNo": [
            "SP::00001",
            "SP::00002",
            "SP::00003",
            "SP::00004",
            "SP::00005"
        ],
        "VoucherName": [
            "Payment",
            "Payment",
            "Payment",
            "Payment",
            "Payment"
        ],
        "VchDate": [
            "2013-04-02 13:49:00",
            "2013-04-02 13:53:00",
            "2013-04-02 13:54:00",
            "2013-04-02 13:55:00",
            "2013-04-02 13:55:00"
        ],
        "LedgerName": [
            "shruthi jewel city",
            "TRUST TECHONOLOGIES",
            "RKR Gold Pvt Ltd",
            "Bank of Nova Scotia",
            "Bank of Nova Scotia"
        ],
        "UnderGroup": [
            "SundryCredit",
            "SundryCredit",
            "SundryCredit",
            "SundryCredit",
            "SundryCredit"
        ],
        "NetAmount": [
            "8977387",
            "1000",
            "14915000",
            "14700000",
            "27700000"
        ],
        "AgnstRefNumber ": [
            "",
            "",
            "",
            "",
            ""
        ],
        "AgnstReferenceAmount ": [
            "",
            "",
            "",
            "",
            ""
        ],
        "CostCentreName ": [
            "",
            "",
            "",
            "",
            ""
        ],
        "CostCategory ": [
            "",
            "",
            "",
            "",
            ""
        ],
        "Status ": [
            "NI",
            "NI",
            "NI",
            "NI",
            "NI"
        ]
    }

}

和我有我的C#类像

 public class ReceiptCr
    {
        public String VchNo { get; set; }
        public String VoucherName { get; set; }
        public DateTime VchDate { get; set; }
        public String LedgerName { get; set; }
        public String UnderGroup { get; set; }
        public Decimal NetAmount { get; set; }
        public String AgnstRefNumber { get; set; }
        public Decimal AgnstReferenceAmount { get; set; }
        public String CostCentreName { get; set; }
        public String CostCategory { get; set; }
        public String Status { get; set; }
    }
public class ReceiptDr
    {
        public String VchNo { get; set; }
        public String VoucherName { get; set; }
        public DateTime VchDate { get; set; }
        public String CashOrBankLedger { get; set; }
        public String UnderGroup { get; set; }
        public Decimal Amount { get; set; }
        public String TransactionType { get; set; }
        public String InstrumentNo { get; set; }
        public DateTime BankDate { get; set; }
        public String BankName { get; set; }
        public String BankBranch { get; set; }
        public String Narration { get; set; }
    }
 public class PaymentDr
    {
        public String VchNo { get; set; }
        public String VoucherName { get; set; }
        public DateTime VchDate { get; set; }
        public String LedgerName { get; set; }
        public String UnderGroup { get; set; }
        public Decimal NetAmount { get; set; }
        public String AgnstRefNumber { get; set; }
        public Decimal AgnstReferenceAmount { get; set; }
        public String CostCentreName { get; set; }
        public String CostCategory { get; set; }
        public String Status { get; set; }
    }



如何在C#中解析此JSON字符串这些还有班

How to parse this json string to these there classes in c#

推荐答案

下面的结构应该让你开始:

The following structure should get you started:

public class ReceiptCR
{
    public string[] VchNo { get; set; }
    public string[] VoucherName { get; set; }
    public string[] VchDate { get; set; }
    ...
}

public class ReceiptDR
{
    public string[] VchNo { get; set; }
    public string[] VoucherName { get; set; }
    public string[] VchDate { get; set; }
    ...
}

public class PaymentDR 
{
    public string[] VchNo { get; set; }
    public string[] VoucherName { get; set; }
    public string[] VchDate { get; set; }
    ...
}



然后定义包装:

And then define the wrapper:

public class Root
{
    public ReceiptCR Receipt_cr { get; set; }
    public ReceiptDR Receipt_dr { get; set; }
    public PaymentDR Payment_dr { get; set; }
}



,你可以从JSON字符串反序列化:

which you could deserialize from the json string:

string json = ...
Root result = JsonConvert.DeserializeObject<Root>(json);

这篇关于JSON字符串到C#对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆