采用Newtonsoft解析JSON字符串

一、需要解析的示例数据

[
    {
        "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 "";
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值