麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

c#解析Josn(解析多個子集,數據,可解析無限級json)

2019-11-17 02:16:46
字體:
來源:轉載
供稿:網友

c#解析Josn(解析多個子集,數據,可解析無限級json)

首先引用 解析類庫

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace BPMS.WEB.Common{    public class CommonJsonModel : CommonJsonModelAnalyzer    {        PRivate string rawjson;        private bool isValue = false;        private bool isModel = false;        private bool isCollection = false;        public CommonJsonModel(string rawjson)        {            this.rawjson = rawjson;            if (string.IsNullOrEmpty(rawjson))                throw new Exception("missing rawjson");            rawjson = rawjson.Trim();            if (rawjson.StartsWith("{"))            {                isModel = true;            }            else if (rawjson.StartsWith("["))            {                isCollection = true;            }            else            {                isValue = true;            }        }        public string Rawjson        {            get { return rawjson; }        }        public bool IsValue()        {            return isValue;        }        public bool IsValue(string key)        {            if (!isModel)                return false;            if (string.IsNullOrEmpty(key))                return false;            foreach (string subjson in base._GetCollection(this.rawjson))            {                CommonJsonModel model = new CommonJsonModel(subjson);                if (!model.IsValue())                    continue;                if (model.Key == key)                {                    CommonJsonModel submodel = new CommonJsonModel(model.Value);                    return submodel.IsValue();                }            }            return false;        }        public bool IsModel()        {            return isModel;        }        public bool IsModel(string key)        {            if (!isModel)                return false;            if (string.IsNullOrEmpty(key))                return false;            foreach (string subjson in base._GetCollection(this.rawjson))            {                CommonJsonModel model = new CommonJsonModel(subjson);                if (!model.IsValue())                    continue;                if (model.Key == key)                {                    CommonJsonModel submodel = new CommonJsonModel(model.Value);                    return submodel.IsModel();                }            }            return false;        }        public bool IsCollection()        {            return isCollection;        }        public bool IsCollection(string key)        {            if (!isModel)                return false;            if (string.IsNullOrEmpty(key))                return false;            foreach (string subjson in base._GetCollection(this.rawjson))            {                CommonJsonModel model = new CommonJsonModel(subjson);                if (!model.IsValue())                    continue;                if (model.Key == key)                {                    CommonJsonModel submodel = new CommonJsonModel(model.Value);                    return submodel.IsCollection();                }            }            return false;        }        /// <summary>        /// 當模型是對象,返回擁有的key        /// </summary>        /// <returns></returns>        public List<string> GetKeys()        {            if (!isModel)                return null;            List<string> list = new List<string>();            foreach (string subjson in base._GetCollection(this.rawjson))            {                string key = new CommonJsonModel(subjson).Key;                if (!string.IsNullOrEmpty(key))                    list.Add(key);            }            return list;        }        /// <summary>        /// 當模型是對象,key對應是值,則返回key對應的值        /// </summary>        /// <param name="key"></param>        /// <returns></returns>        public string GetValue(string key)        {            if (!isModel)                return null;            if (string.IsNullOrEmpty(key))                return null;            foreach (string subjson in base._GetCollection(this.rawjson))            {                CommonJsonModel model = new CommonJsonModel(subjson);                if (!model.IsValue())                    continue;                if (model.Key != key)                    continue;                if (model.Key == key)                    return model.Value;            }            return null;        }        /// <summary>        /// 模型是對象,key對應是對象,返回key對應的對象        /// </summary>        /// <param name="key"></param>        /// <returns></returns>        public CommonJsonModel GetModel(string key)        {            if (!isModel)                return null;            if (string.IsNullOrEmpty(key))                return null;            foreach (string subjson in base._GetCollection(this.rawjson))            {                CommonJsonModel model = new CommonJsonModel(subjson);                if (!model.IsValue())                    continue;                if (model.Key == key)                {                    CommonJsonModel submodel = new CommonJsonModel(model.Value);                    if (!submodel.IsModel())                        return null;                    else                        return submodel;                }            }            return null;        }        /// <summary>        /// 模型是對象,key對應是集合,返回集合        /// </summary>        /// <param name="key"></param>        /// <returns></returns>        public CommonJsonModel GetCollection(string key)        {            if (!isModel)                return null;            if (string.IsNullOrEmpty(key))                return null;            foreach (string subjson in base._GetCollection(this.rawjson))            {                CommonJsonModel model = new CommonJsonModel(subjson);                if (!model.IsValue())                    continue;                if (model.Key == key)                {                    CommonJsonModel submodel = new CommonJsonModel(model.Value);                    if (!submodel.IsCollection())                        return null;                    else                        return submodel;                }            }            return null;        }        /// <summary>        /// 模型是集合,返回自身        /// </summary>        /// <returns></returns>        public List<CommonJsonModel> GetCollection()        {            List<CommonJsonModel> list = new List<CommonJsonModel>();            if (IsValue())                return list;            foreach (string subjson in base._GetCollection(rawjson))            {                list.Add(new CommonJsonModel(subjson));            }            return list;        }        /// <summary>        /// 當模型是值對象,返回key        /// </summary>        private string Key        {            get            {                if (IsValue())                    return base._GetKey(rawjson);                return null;            }        }        /// <summary>        /// 當模型是值對象,返回value        /// </summary>        private string Value        {            get            {                if (!IsValue())                    return null;                return base._GetValue(rawjson);            }        }    }}
View Code

  解析類父類

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线影院av | 精品一区二区中文字幕 | 精品国产高清一区二区三区 | 日韩精品久久久 | 在线成人免费av | 99r国产精品 | 少妇激情视频 | chinese乱子伦xxxx国语对白 | 久久影院一区二区三区 | 中文日产幕无线码6区免费版 | 色播视频在线播放 | 国产精品亚洲yourport | 久久精品欧美一区 | 成人福利网 | 99精品无人区乱码在线观看 | 一级黄片毛片免费看 | 国产1区在线观看 | 娇喘视频在线观看 | 92看片淫黄大片欧美看国产片 | 成人午夜一区二区 | 精品亚洲va在线va天堂资源站 | 91成人免费在线视频 | 日韩大片在线永久观看视频网站免费 | h网站在线观看 | 成人视屏在线观看 | www视频免费观看 | 国产在线1区 | 国产精品嘿咻嘿咻在线播放 | 久草资源在线观看 | 国产亚洲精品成人a | 蜜桃视频观看麻豆 | 精品av在线播放 | 精品91av| 亚洲综合精品成人 | av噜噜在线 | 天天躁狠狠躁夜躁2020挡不住 | 未成年人在线观看 | 性猛aa久久久 | 成人黄色小视频网站 | 国产大片中文字幕在线观看 | 中文字幕网站在线 |