C# 使用c语言反序列化复杂的Json#

C# 使用c语言反序列化复杂的Json#,c#,json,deserialization,json-deserialization,C#,Json,Deserialization,Json Deserialization,如何使用c反序列化下面的JSON# string data=@“{”“root”“:{”“EmployeeMaster”“:{”“EmployeeMasterData”“:[{”“ContactDetails”“:{”“ContactDetails”“:[{”“BKPLZ”“:”“1”“操作”“:”“创建”“GBDEP”“:”“P”“,”PERNR“:”1“,”AddressType“:”Per“,”BKORT“:”P“,”},{”BKPLZ“:”262228“,”操作“:”创建“,”GBDEP

如何使用c反序列化下面的JSON#

string data=@“{”“root”“:{”“EmployeeMaster”“:{”“EmployeeMasterData”“:[{”“ContactDetails”“:{”“ContactDetails”“:[{”“BKPLZ”“:”“1”“操作”“:”“创建”“GBDEP”“:”“P”“,”PERNR“:”1“,”AddressType“:”Per“,”BKORT“:”P“,”},{”BKPLZ“:”262228“,”操作“:”创建“,”GBDEP“:”P“,”PERNR“:”1“,”“AddressType”“:”“Res”“,”“BKORT”“:”“p”“}],”“BankDetails”“:{”“BankDetail”“:{”“ZBANKGRP”“:”“B”“,”“EMFTX”“:”“,”“BANKN”“:”“123”“,”“Action”“:”“Create”“,”“PERNR”“:”“1”“ZZIFSC”“:”“123”“ZLSCH:”,“ZLSCH:”,“基本细节”:{“基本细节”:{“ANREX:”先生“,”GBLND:”工业“,”计划“:”行动“:”创建“,”BEGDA“:”2008-04-15“,”PERNR“:”1”“,”IO“:”2“,”WERKS“:”公司“,”大众“:”KST01“:”PDLH201“,”GSBER“:”CFHO“,”沃纳“:”卡皮尔“,”ORT01“:”诺伊达“,”国家“:”印度“,”纳钦“:”M“,”佩斯克“:”MG4”“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男”,“男;
var json=JObject.Parse(数据);
var serializer=new JsonSerializer();
var a=serializer.Deserialize(json[“root”][“EmployeeMaster”].CreateReader());
公共类EmployeeMasterData
{
公共列表联系人详细信息{get;set;}
公共列表银行详细信息{get;set;}
公共列表基本细节{get;set;}
}
公共类银行详情
{
公共字符串ZBANKGRP{get;set;}
公共字符串EMFTX{get;set;}
公共字符串BANKN{get;set;}
公共字符串操作{get;set;}
公共字符串PERNR{get;set;}
公共字符串ZZIFSC{get;set;}
公共字符串ZLSCH{get;set;}
}
公共类联系人详细信息
{
公共字符串BKPLZ{get;set;}
公共字符串操作{get;set;}
公共字符串GBDEP{get;set;}
公共字符串PERNR{get;set;}
公共字符串地址类型{get;set;}
公共字符串BKORT{get;set;}
}
公共类基本细节
{
公共字符串ANREX{get;set;}
公共字符串GBLND{get;set;}
公共字符串计划{get;set;}
{get;set;}的公共字符串
公共字符串操作{get;set;}
公共字符串BEGDA{get;set;}
公共字符串PERNR{get;set;}
公共字符串IO{get;set;}
公共字符串WERKS{get;set;}
公共字符串MASSG{get;set;}
公共字符串KST01{get;set;}
公共字符串GSBER{get;set;}
公共字符串VORNA{get;set;}
公共字符串ORT01{get;set;}
公共字符串NATIO{get;set;}
公共字符串NACHIN{get;set;}
公共字符串PERSK{get;set;}
公共字符串GESCH{get;set;}
公共字符串PERSG{get;set;}
公共字符串ABKRS{get;set;}
公共字符串BTRTAL{get;set;}
公共字符串GBDAT{get;set;}
公共字符串RO{get;set;}
公共字符串KBU01{get;set;}
}

如果要反序列化整个Json,则需要对类定义进行一些更改。例如

public class ContactDetail
{
    public string BKPLZ { get; set; }
    public string Action { get; set; }
    public string GBDEP { get; set; }
    public string PERNR { get; set; }
    public string AddressType { get; set; }
    public string BKORT { get; set; }
}

public class ContactDetails
{
    public List<ContactDetail> ContactDetail { get; set; }
}

public class BankDetail
{
    public string ZBANKGRP { get; set; }
    public string EMFTX { get; set; }
    public string BANKN { get; set; }
    public string Action { get; set; }
    public string PERNR { get; set; }
    public string ZZIFSC { get; set; }
    public string ZLSCH { get; set; }
}

public class BankDetails
{
    public BankDetail BankDetail { get; set; }
}

public class BasicDetail
{
    public string ANREX { get; set; }
    public string GBLND { get; set; }
    public string PLANS { get; set; }
    public string FRO { get; set; }
    public string Action { get; set; }
    public string BEGDA { get; set; }
    public string PERNR { get; set; }
    public string IO { get; set; }
    public string WERKS { get; set; }
    public string MASSG { get; set; }
    public string KST01 { get; set; }
    public string GSBER { get; set; }
    public string VORNA { get; set; }
    public string ORT01 { get; set; }
    public string NATIO { get; set; }
    public string NACHIN { get; set; }
    public string PERSK { get; set; }
    public string GESCH { get; set; }
    public string PERSG { get; set; }
    public string ABKRS { get; set; }
    public string BTRTAL { get; set; }
    public string GBDAT { get; set; }
    public string RO { get; set; }
    public string KBU01 { get; set; }
}

public class BasicDetails
{
    public BasicDetail BasicDetail { get; set; }
}

public class EmployeeMasterData
{
    public ContactDetails ContactDetails { get; set; }
    public BankDetails BankDetails { get; set; }
    public BasicDetails BasicDetails { get; set; }
}

public class EmployeeMaster
{
    public List<EmployeeMasterData> EmployeeMasterData { get; set; }
}

public class Root
{
    public EmployeeMaster EmployeeMaster { get; set; }
}

public class RootObject
{
    public Root root { get; set; }
}
公共类联系人详细信息
{
公共字符串BKPLZ{get;set;}
公共字符串操作{get;set;}
公共字符串GBDEP{get;set;}
公共字符串PERNR{get;set;}
公共字符串地址类型{get;set;}
公共字符串BKORT{get;set;}
}
公共类联系人详细信息
{
公共列表联系人详细信息{get;set;}
}
公共类银行详情
{
公共字符串ZBANKGRP{get;set;}
公共字符串EMFTX{get;set;}
公共字符串BANKN{get;set;}
公共字符串操作{get;set;}
公共字符串PERNR{get;set;}
公共字符串ZZIFSC{get;set;}
公共字符串ZLSCH{get;set;}
}
公营银行资料
{
公共银行详细信息银行详细信息{get;set;}
}
公共类基本细节
{
公共字符串ANREX{get;set;}
公共字符串GBLND{get;set;}
公共字符串计划{get;set;}
{get;set;}的公共字符串
公共字符串操作{get;set;}
公共字符串BEGDA{get;set;}
公共字符串PERNR{get;set;}
公共字符串IO{get;set;}
公共字符串WERKS{get;set;}
公共字符串MASSG{get;set;}
公共字符串KST01{get;set;}
公共字符串GSBER{get;set;}
公共字符串VORNA{get;set;}
公共字符串ORT01{get;set;}
公共字符串NATIO{get;set;}
公共字符串NACHIN{get;set;}
公共字符串PERSK{get;set;}
公共字符串GESCH{get;set;}
公共字符串PERSG{get;set;}
公共字符串ABKRS{get;set;}
公共字符串BTRTAL{get;set;}
公共字符串GBDAT{get;set;}
公共字符串RO{get;set;}
公共字符串KBU01{get;set;}
}
公共类基本细节
{
公共基本细节基本细节{get;set;}
}
公共类EmployeeMasterData
{
公共联系人详细信息联系人详细信息{get;set;}
公共银行详细信息银行详细信息{get;set;}
公共基本细节基本细节{get;set;}
}
公共类雇主主管
{
公开名单雇员
var result = JsonConvert.DeserializeObject<RootObject>(data);
var json = JObject.Parse(data);
var result= JsonConvert.DeserializeObject<EmployeeMaster>(json["root"]["EmployeeMaster"].ToString());