一、需要解析的示例数据
[
{
"IDNum": "身份证号",
"FullName": "姓名",
"SexualityName": "性别(男、女)",
"RegistAddress": "户籍地址",
"RealAddress": "实际居住地址",
"CellPhone": "手机号码",
"Telephone": "电话号码",
"JobStatus": "工作状况(待业、已就业)",
"DegreeLevel": "文化程度(大专、本科)",
"MarryStatus": "婚姻状况(已婚、未婚)",
"EconomyStatus": "经济状况(无收入、5000-10000)",
"LiveStatus": "居住状况(租房、已购房)",
"CreditRecord": [
{
"CODE": "失信行为编码(作为唯一标识)",
"GLJD": "管理阶段(申请审核、分配供应、供后使用、退出管理)",
"XWFL": "行为分类(隐瞒虚报、违约行为 )",
"HGXM": "涵盖项目(廉租住房、公用租赁住房、共有产权保障住房)",
"RDYJ": "认定依据",
"FULLTEXT": "信用行为描述:",
"SHORTTEXT": "信用行为简称",
"PJBZ": "评价标准(严重失信、一般失信)",
"YXQX": "有效期限",
"XYZT": "信用主体",
"CJDX": "惩戒对象"
},
{
"CODE": "BFSD_12547885",
"GLJD": "申请审核",
"XWFL": "隐瞒虚报",
"HGXM": "廉租住房、公共租赁住房、共有产权保障住房",
"RDYJ": "认定依据",
"FULLTEXT": "提供伪造、虚假身份证明(状况):",
"SHORTTEXT": "伪造、虚假身份证明",
"PJBZ": "严重失信行为",
"YXQX": "5",
"XYZT": "审核对象",
"CJDX": "申请人代表、涉及的申请人员"
}
]
},
{
"IDNum": "10010",
"FullName": "李四",
"SexualityName": "男",
"RegistAddress": "XXXX",
"RealAddress": "XXX",
"CellPhone": "135",
"Telephone": "021-111",
"JobStatus": "待业",
"DegreeLevel": "本科",
"MarryStatus": "未婚",
"EconomyStatus": "无收入",
"LiveStatus": "与父母同住",
"CreditRecord": []
}
]
二、解析代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml;
using Newtonsoft.Json.Linq;
namespace Common
{
public class ZFBZ_Util
{
class ZFBZ_Credit
{
public int ID { get; set; }
public string Code { get; set; }
public string Gljd { get; set; }
public string Xwfl { get; set; }
public string Hgxm { get; set; }
public string Rdyj { get; set; }
public string FullText { get; set; }
public string ShortText { get; set; }
public string Pjbz { get; set; }
public int Yxqx { get; set; }
public string Xyzt { get; set; }
public string Cjdx { get; set; }
}
class ZFBZ_Subject
{
public int ID { get; set; }
public string IDNum { get; set; }
public string FullName { get; set; }
public string SexualityName { get; set; }
public string RegistAddress { get; set; }
public string RealAddress { get; set; }
public string CellPhone { get; set; }
public string Telephone { get; set; }
public string JobStatus { get; set; }
public string DegreeLevel { get; set; }
public string MarryStatus { get; set; }
public string EconomyStatus { get; set; }
public string LiveStatus { get; set; }
public List<ZFBZ_Credit> CreditRecord { get; set; }
}
private List<ZFBZ_Subject> AnalyzeXml(string xml)
{
//<root>
// <Subject>
// <IDNum>身份证号</IDNum>
// <FullName>姓名</FullName>
// <SexualityName>性别(男、女)</SexualityName>
// <RegistAddress>户籍地址</RegistAddress>
// <RealAddress>实际居住地址</RealAddress>
// <CellPhone>手机号码</CellPhone>
// <Telephone>电话号码</Telephone>
// <JobStatus>工作状况(待业、已就业)</JobStatus>
// <DegreeLevel>文化程度(大专、本科)</DegreeLevel>
// <MarryStatus>婚姻状况(已婚、未婚)</MarryStatus>
// <EconomyStatus>经济状况(无收入、5000-10000)</EconomyStatus>
// <LiveStatus>居住状况(租房、已购房)</LiveStatus>
// <CreditRecords>
// <CreditRecord>
// <CODE>失信行为编码(作为唯一标识)</CODE>
// <GLJD>管理阶段(申请审核、分配供应、供后使用、退出管理)</GLJD>
// <XWFL>行为分类(隐瞒虚报、违约行为 )</XWFL>
// <HGXM>涵盖项目(廉租住房、公用租赁住房、共有产权保障住房)</HGXM>
// <RDYJ>认定依据</RDYJ>
// <FULLTEXT>信用行为描述</FULLTEXT>
// <SHORTTEXT>信用行为简称</SHORTTEXT>
// <PJBZ>评价标准(严重失信、一般失信)</PJBZ>
// <YXQX>有效期限</YXQX>
// <XYZT>信用主体</XYZT>
// <CJDX>惩戒对象</CJDX>
// </CreditRecord>
// <CreditRecord>
// <CODE>BFSD_12547885</CODE>
// <GLJD>申请审核</GLJD>
// <XWFL>隐瞒虚报</XWFL>
// <HGXM>廉租住房、公用租赁住房、共有产权保障住房</HGXM>
// <RDYJ>认定依据</RDYJ>
// <FULLTEXT>提供伪造、虚假身份证明(状况)</FULLTEXT>
// <SHORTTEXT>伪造、虚假身份证明</SHORTTEXT>
// <PJBZ>严重失信行为</PJBZ>
// <YXQX>5</YXQX>
// <XYZT>审核对象</XYZT>
// <CJDX>申请人代表、涉及的申请人员</CJDX>
// </CreditRecord>
// </CreditRecords>
// </Subject>
// <Subject>
// <IDNum>511023198000000000000</IDNum>
// <FullName>李四</FullName>
// <SexualityName>男</SexualityName>
// <RegistAddress>户籍地址</RegistAddress>
// <RealAddress>实际居住地址</RealAddress>
// <CellPhone>1354444</CellPhone>
// <Telephone>021-14521</Telephone>
// <JobStatus>待业</JobStatus>
// <DegreeLevel>本科</DegreeLevel>
// <MarryStatus>未婚</MarryStatus>
// <EconomyStatus>无收入</EconomyStatus>
// <LiveStatus>与父母同住</LiveStatus>
// <CreditRecords></CreditRecords>
// </Subject>
//</root>
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
//解析XML数据
ZFBZ_Subject subject = null;
List<ZFBZ_Subject> list = new List<ZFBZ_Subject>();
XmlNodeList nodes = doc.SelectSingleNode("root").SelectNodes("Subject");
foreach (XmlNode node in nodes)
{
subject = new ZFBZ_Subject();
subject.ID = 0;
subject.IDNum = node.SelectSingleNode("IDNum").InnerText;
subject.FullName = node.SelectSingleNode("FullName").InnerText;
subject.SexualityName = node.SelectSingleNode("SexualityName").InnerText;
subject.RegistAddress = node.SelectSingleNode("RegistAddress").InnerText;
subject.RealAddress = node.SelectSingleNode("RealAddress").InnerText;
subject.CellPhone = node.SelectSingleNode("CellPhone").InnerText;
subject.Telephone = node.SelectSingleNode("Telephone").InnerText;
subject.JobStatus = node.SelectSingleNode("JobStatus").InnerText;
subject.DegreeLevel = node.SelectSingleNode("DegreeLevel").InnerText;
subject.MarryStatus = node.SelectSingleNode("MarryStatus").InnerText;
subject.EconomyStatus = node.SelectSingleNode("EconomyStatus").InnerText;
subject.LiveStatus = node.SelectSingleNode("LiveStatus").InnerText;
XmlNodeList items = node.SelectSingleNode("CreditRecords").SelectNodes("CreditRecord");
if (items != null && items.Count > 0)
{
ZFBZ_Credit credit = null;
List<ZFBZ_Credit> credits = new List<ZFBZ_Credit>();
foreach (XmlNode item in items)
{
credit = new ZFBZ_Credit();
credit.ID = 0;
credit.Code = item.SelectSingleNode("CODE").InnerText;
credit.Gljd = item.SelectSingleNode("GLJD").InnerText;
credit.Xwfl = item.SelectSingleNode("XWFL").InnerText;
credit.Hgxm = item.SelectSingleNode("HGXM").InnerText;
credit.Rdyj = item.SelectSingleNode("RDYJ").InnerText;
credit.FullText = item.SelectSingleNode("FULLTEXT").InnerText;
credit.ShortText = item.SelectSingleNode("SHORTTEXT").InnerText;
credit.Pjbz = item.SelectSingleNode("PJBZ").InnerText;
credit.Yxqx = int.Parse(item.SelectSingleNode("YXQX").InnerText);
credit.Xyzt = item.SelectSingleNode("XYZT").InnerText;
credit.Cjdx = item.SelectSingleNode("CJDX").InnerText;
credits.Add(credit);
}
subject.CreditRecord = credits;
}
list.Add(subject);
}
return list;
}
public string ImportFromXml(string info_id, string xml)
{
List<ZFBZ_Subject> list = AnalyzeXml(xml);
return "";
}
private List<ZFBZ_Subject> AnalyzeJson(string json)
{
ZFBZ_Subject subject = null;
List<ZFBZ_Subject> list = new List<ZFBZ_Subject>();
JArray obj = JArray.Parse(json);
//遍历第一层数据
foreach (JObject item in obj.Children())
{
subject = new ZFBZ_Subject();
subject.ID = 0;
subject.IDNum = item["IDNum"].ToString();
subject.FullName = item["FullName"].ToString();
subject.SexualityName = item["SexualityName"].ToString();
subject.RegistAddress = item["RegistAddress"].ToString();
subject.RealAddress = item["RealAddress"].ToString();
subject.CellPhone = item["CellPhone"].ToString();
subject.Telephone = item["Telephone"].ToString();
subject.JobStatus = item["JobStatus"].ToString();
subject.DegreeLevel = item["DegreeLevel"].ToString();
subject.MarryStatus = item["MarryStatus"].ToString();
subject.EconomyStatus = item["EconomyStatus"].ToString();
subject.LiveStatus = item["LiveStatus"].ToString();
JToken token = item["CreditRecord"];
ZFBZ_Credit credit = null;
List<ZFBZ_Credit> credits = new List<ZFBZ_Credit>();
//第二层循环
foreach (JObject itemInner in token.Children())
{
credit = new ZFBZ_Credit();
credit.ID = 0;
credit.Code = itemInner["CODE"].ToString();
credit.Gljd = itemInner["GLJD"].ToString();
credit.Xwfl = itemInner["XWFL"].ToString();
credit.Hgxm = itemInner["HGXM"].ToString();
credit.Rdyj = itemInner["RDYJ"].ToString();
credit.FullText = itemInner["FULLTEXT"].ToString();
credit.ShortText = itemInner["SHORTTEXT"].ToString();
credit.Pjbz = itemInner["PJBZ"].ToString();
credit.Yxqx = int.Parse(itemInner["YXQX"].ToString());
credit.Xyzt = itemInner["XYZT"].ToString();
credit.Cjdx = itemInner["CJDX"].ToString();
credits.Add(credit);
}
subject.CreditRecord = credits;
list.Add(subject);
}
return list;
}
public string ImportFromJson(string info_id, string json)
{
List<ZFBZ_Subject> list = AnalyzeJson(json);
return "";
}
}
}