亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 淺析ASP.NET萬能JSON解析器

淺析ASP.NET萬能JSON解析器

熱門標簽:手機地圖標注如何刪除 巫師3為什么地圖標注的財寶沒有 辦理400電話證件 外呼系統代理品牌 寧波自動外呼系統代理 世紀佳緣地圖標注怎么去掉 十堰正規電銷機器人系統 外呼系統費用一年 怎么給超市做地圖標注入駐店

概念介紹
還是先簡單說說Json的一些例子吧。注意,以下概念是我自己定義的,可以參考.net里面的TYPE的模型設計
如果有爭議,歡迎提出來探討!

1.最簡單:
{"total":0}
total就是值,值是數值,等于0

2. 復雜點
{"total":0,"data":{"377149574" : 1}}
total是值,data是對象,這個對象包含了"377149574"這個值,等于1

3. 最復雜
{"total":0,"data":{"377149574":[{"cid":"377149574"}]}}
total是值,data是對象,377149574是數組,這個數組包含了一些列的對象,例如{"cid":"377149574"}這個對象。

有了以上的概念,就可以設計出通用的json模型了。

萬能JSON源碼:

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
namespace Pixysoft.Json
{
    public class CommonJsonModelAnalyzer
    {
        protected string _GetKey(string rawjson)
        {
            if (string.IsNullOrEmpty(rawjson))
                return rawjson;
            rawjson = rawjson.Trim();
            string[] jsons = rawjson.Split(new char[] { ':' });
            if (jsons.Length 2)
                return rawjson;
            return jsons[0].Replace("\"", "").Trim();
        }
        protected string _GetValue(string rawjson)
        {
            if (string.IsNullOrEmpty(rawjson))
                return rawjson;
            rawjson = rawjson.Trim();
            string[] jsons = rawjson.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
            if (jsons.Length 2)
                return rawjson;
            StringBuilder builder = new StringBuilder();
            for (int i = 1; i jsons.Length; i++)
            {
                builder.Append(jsons[i]);
                builder.Append(":");
            }
            if (builder.Length > 0)
                builder.Remove(builder.Length - 1, 1);
            string value = builder.ToString();
            if (value.StartsWith("\""))
                value = value.Substring(1);
            if (value.EndsWith("\""))
                value = value.Substring(0, value.Length - 1);
            return value;
        }
        protected Liststring> _GetCollection(string rawjson)
        {
            //[{},{}]
            Liststring> list = new Liststring>();
            if (string.IsNullOrEmpty(rawjson))
                return list;
            rawjson = rawjson.Trim();
            StringBuilder builder = new StringBuilder();
            int nestlevel = -1;
            int mnestlevel = -1;
            for (int i = 0; i rawjson.Length; i++)
            {
                if (i == 0)
                    continue;
                else if (i == rawjson.Length - 1)
                    continue;
                char jsonchar = rawjson[i];
                if (jsonchar == '{')
                {
                    nestlevel++;
                }
                if (jsonchar == '}')
                {
                    nestlevel--;
                }
                if (jsonchar == '[')
                {
                    mnestlevel++;
                }
                if (jsonchar == ']')
                {
                    mnestlevel--;
                }
                if (jsonchar == ',' nestlevel == -1 mnestlevel == -1)
                {
                    list.Add(builder.ToString());
                    builder = new StringBuilder();
                }
                else
                {
                    builder.Append(jsonchar);
                }
            }
            if (builder.Length > 0)
                list.Add(builder.ToString());
            return list;
        }
    }
}

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
namespace Pixysoft.Json
{
    public class CommonJsonModel : CommonJsonModelAnalyzer
    {
        private string rawjson;
        private bool isValue = false;
        private bool isModel = false;
        private bool isCollection = false;
        internal 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 Liststring> GetKeys()
        {
            if (!isModel)
                return null;
            Liststring> list = new Liststring>();
            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)
                    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 ListCommonJsonModel> GetCollection()
        {
            ListCommonJsonModel> list = new ListCommonJsonModel>();
            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);
            }
        }
    }
}


使用方法

public CommonJsonModel DeSerialize(string json)
{
 return new CommonJsonModel(json);
}

超級簡單,只要new一個通用對象,把json字符串放進去就行了。

針對上文的3個例子,我給出3種使用方法:

{"total":0}
CommonJsonModel model = DeSerialize(json);
model.GetValue("total") // return 0
{"total":0,"data":{"377149574" : 1}}
CommonJsonModel model = DeSerialize(json);
model.GetModel("data").GetValue("377149574") //return 1
{"total":0,"data":{"377149574":[{"cid":"377149574"}]}}
CommonJsonModel model = DeSerialize(json);
model.GetCollection("377149574").GetCollection()[0].GetValue("cid") //return 377149574

這個有點點復雜,

1. 首先377149574代表了一個集合,所以要用model.GetCollection("377149574")把這個集合取出來。

2. 其次這個集合里面包含了很多對象,因此用GetColllection()把這些對象取出來

3. 在這些對象List里面取第一個[0],表示取了":{"cid":"377149574"}這個對象,然后再用GetValue("cid")把對象的值取出來。

您可能感興趣的文章:
  • asp.net(C#)解析Json的類代碼
  • asp.net中各種類型的JSON格式化
  • asp.net MVC下使用rest的方法
  • .Net整合Json實現REST服務客戶端的方法詳解

標簽:泰州 平涼 山西 牡丹江 通遼 景德鎮 嘉興 天門

巨人網絡通訊聲明:本文標題《淺析ASP.NET萬能JSON解析器》,本文關鍵詞  淺析,ASP.NET,萬能,JSON,解析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺析ASP.NET萬能JSON解析器》相關的同類信息!
  • 本頁收集關于淺析ASP.NET萬能JSON解析器的相關信息資訊供網民參考!
  • 推薦文章
    成人a级高清视频在线观看| 99久久精品国产国产毛片| 欧美激情一区二区三区在线播放| 国产一区二区精品久久| 亚欧成人乱码一区二区| 天天做人人爱夜夜爽2020毛片| 成人免费观看视频| 欧美日本国产| 日本免费乱人伦在线观看| 精品国产一区二区三区国产馆 | 国产高清在线精品一区二区| 青青青草影院| 999久久狠狠免费精品| 四虎影视久久久| 亚洲天堂免费观看| 天天色色色| 亚洲 国产精品 日韩| 日韩专区一区| 国产国语在线播放视频| 成人免费一级毛片在线播放视频| 精品国产一区二区三区免费 | 美女免费毛片| 91麻豆精品国产自产在线| 毛片电影网| 国产高清视频免费观看| 青青久久网| a级精品九九九大片免费看| 精品久久久久久中文字幕一区| 999久久狠狠免费精品| 亚洲第一页色| 韩国三级视频网站| 国产成人精品综合在线| 国产国语在线播放视频| 欧美α片无限看在线观看免费| 国产一区免费在线观看| 91麻豆国产福利精品| 黄视频网站在线观看| 精品久久久久久免费影院| 国产精品自拍在线| 亚洲精品中文一区不卡| 久久国产影院| 一级女性大黄生活片免费| 国产网站免费观看| 可以在线看黄的网站| 中文字幕97| 久久精品道一区二区三区| 国产一级强片在线观看| 日韩中文字幕一区| 成人免费一级毛片在线播放视频| 亚洲www美色| 久久精品人人做人人爽97| 欧美激情一区二区三区在线 | 你懂的国产精品| 精品视频免费在线| 亚欧乱色一区二区三区| 国产成a人片在线观看视频| 国产麻豆精品免费密入口| 你懂的国产精品| 毛片电影网| 欧美一级视| 日韩av东京社区男人的天堂| 免费国产一级特黄aa大片在线| 国产一级强片在线观看| 精品视频在线观看一区二区三区| 欧美日本国产| 高清一级片| 精品国产一区二区三区精东影业| 四虎影视久久久| 国产伦精品一区三区视频| 精品视频免费观看| 日韩av东京社区男人的天堂| 国产一区精品| 青青久久网| 国产亚洲精品aaa大片| 国产国产人免费视频成69堂| 日韩专区一区| 青青久久国产成人免费网站| 麻豆午夜视频| 香蕉视频一级| 日韩中文字幕在线播放| 免费一级片在线观看| 毛片电影网| 午夜久久网| 99久久精品国产免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚欧成人乱码一区二区| 99久久精品国产国产毛片| 国产不卡精品一区二区三区| 成人在免费观看视频国产| 免费国产在线观看不卡| 国产精品自拍亚洲| 免费的黄色小视频| 国产国语在线播放视频| 夜夜操天天爽| 99久久精品国产免费| 国产一区二区精品| 国产福利免费观看| 成人影视在线观看| 韩国三级香港三级日本三级la | 中文字幕97| 美女免费黄网站| 99久久精品国产国产毛片| 国产精品123| 精品国产亚洲人成在线| 毛片电影网| 91麻豆精品国产自产在线| 国产精品自拍亚洲| 国产不卡在线观看| 一本高清在线| 欧美激情一区二区三区在线 | 黄视频网站在线免费观看| 精品久久久久久免费影院| 日本免费看视频| 国产不卡在线看| 国产视频在线免费观看| 国产麻豆精品hdvideoss| 美女免费黄网站| 久久国产一区二区| 色综合久久天天综合观看| 欧美激情一区二区三区在线播放| 韩国毛片基地| 久久久成人影院| 黄视频网站在线免费观看| 在线观看成人网| 美女免费黄网站| 美国一区二区三区| 日韩中文字幕在线播放| 精品视频免费观看| 国产视频一区二区在线播放| 国产欧美精品午夜在线播放| 日韩在线观看视频网站| 国产亚洲免费观看| 天堂网中文在线| 成人免费观看视频| 中文字幕97| 日韩免费在线视频| 亚洲天堂免费观看| 91麻豆精品国产自产在线| 国产91丝袜高跟系列| 韩国三级视频在线观看| 日本特黄特黄aaaaa大片| 成人免费一级毛片在线播放视频| 韩国三级香港三级日本三级la | 中文字幕97| 免费的黄色小视频| 久久精品道一区二区三区| a级毛片免费全部播放| 日韩女人做爰大片| 成人在免费观看视频国产| 久久国产影院| 国产视频在线免费观看| 亚洲 国产精品 日韩| 精品在线观看一区| 国产91精品露脸国语对白| 国产不卡在线观看| a级精品九九九大片免费看| 国产成人欧美一区二区三区的| 久久国产精品自由自在| 韩国三级香港三级日本三级la | 午夜在线亚洲男人午在线| 日韩综合| 亚洲女初尝黑人巨高清在线观看| 四虎影视久久久| 国产国语在线播放视频| 国产高清在线精品一区二区| 久久国产精品只做精品| 日本特黄一级| 999久久久免费精品国产牛牛| 免费毛片播放| 国产视频一区二区在线播放| 一 级 黄 中国色 片| 999精品影视在线观看| 欧美国产日韩在线| 日韩中文字幕一区| 国产不卡高清| 成人影视在线观看| 欧美a免费| 九九久久99| 欧美α片无限看在线观看免费| 日韩欧美一二三区| 999久久狠狠免费精品| 黄色福利片| 亚洲精品久久玖玖玖玖| 日韩在线观看视频网站| 亚久久伊人精品青青草原2020| 深夜做爰性大片中文| 黄色短视频网站| 国产精品免费精品自在线观看| 国产不卡高清| 亚洲www美色| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美日本免费| 成人a级高清视频在线观看| 黄视频网站免费观看| 午夜在线亚洲男人午在线| 亚洲 国产精品 日韩| 国产91素人搭讪系列天堂| 国产麻豆精品视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产极品精频在线观看|