婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

淺析ASP.NET萬能JSON解析器

熱門標(biāo)簽:手機(jī)地圖標(biāo)注如何刪除 巫師3為什么地圖標(biāo)注的財(cái)寶沒有 辦理400電話證件 外呼系統(tǒng)代理品牌 寧波自動(dòng)外呼系統(tǒng)代理 世紀(jì)佳緣地圖標(biāo)注怎么去掉 十堰正規(guī)電銷機(jī)器人系統(tǒng) 外呼系統(tǒng)費(fèi)用一年 怎么給超市做地圖標(biāo)注入駐店

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

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

2. 復(fù)雜點(diǎn)
{"total":0,"data":{"377149574" : 1}}
total是值,data是對象,這個(gè)對象包含了"377149574"這個(gè)值,等于1

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

有了以上的概念,就可以設(shè)計(jì)出通用的json模型了。

萬能JSON源碼:

復(fù)制代碼 代碼如下:

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;
        }
    }
}

復(fù)制代碼 代碼如下:

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>
        /// 當(dāng)模型是對象,返回?fù)碛械膋ey
        /// /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>
        /// 當(dāng)模型是對象,key對應(yīng)是值,則返回key對應(yīng)的值
        /// /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對應(yīng)是對象,返回key對應(yīng)的對象
        /// /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對應(yīng)是集合,返回集合
        /// /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>
        /// 當(dāng)模型是值對象,返回key
        /// /summary>
        private string Key
        {
            get
            {
                if (IsValue())
                    return base._GetKey(rawjson);
                return null;
            }
        }
        /// summary>
        /// 當(dāng)模型是值對象,返回value
        /// /summary>
        private string Value
        {
            get
            {
                if (!IsValue())
                    return null;
                return base._GetValue(rawjson);
            }
        }
    }
}


使用方法

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

超級簡單,只要new一個(gè)通用對象,把json字符串放進(jìn)去就行了。

針對上文的3個(gè)例子,我給出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

這個(gè)有點(diǎn)點(diǎn)復(fù)雜,

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

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

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

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

標(biāo)簽:泰州 山西 牡丹江 通遼 景德鎮(zhèn) 嘉興 天門

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺析ASP.NET萬能JSON解析器》,本文關(guān)鍵詞  淺析,ASP.NET,萬能,JSON,解析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺析ASP.NET萬能JSON解析器》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺析ASP.NET萬能JSON解析器的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品国内二区三区| 国产农村妇女精品| 日韩午夜中文字幕| 中文一区二区完整视频在线观看| 亚洲综合在线观看视频| 精品夜夜嗨av一区二区三区| av高清久久久| 久久先锋影音av鲁色资源网| 亚洲国产一区视频| 国产精品自拍av| 欧美日韩综合在线免费观看| 精品国产在天天线2019| 午夜视频在线观看一区二区三区| 成人性生交大片免费看中文网站| 欧美欧美午夜aⅴ在线观看| 国产精品欧美久久久久一区二区 | 色综合久久综合网| 久久精品一区蜜桃臀影院| 亚洲国产日产av| 99久久精品国产精品久久| 欧美一级艳片视频免费观看| 亚洲免费观看视频| 国产成人在线影院| 精品乱码亚洲一区二区不卡| 亚洲成av人影院| 在线亚洲精品福利网址导航| 国产精品免费久久| 国产米奇在线777精品观看| 在线电影欧美成精品| 一区二区三区在线看| av一区二区三区在线| 欧美激情综合在线| 国产麻豆精品久久一二三| 欧美一区二区成人| 亚洲图片欧美一区| 欧美日韩中文字幕一区| 亚洲免费观看在线视频| 色婷婷亚洲精品| 18欧美乱大交hd1984| 不卡的看片网站| 亚洲国产精品av| 不卡的电影网站| 亚洲三级电影全部在线观看高清| 色综合一个色综合| 亚洲精品视频在线| 欧美日韩视频专区在线播放| 亚洲一二三四久久| 欧美精品日日鲁夜夜添| 免费看日韩精品| 欧美mv日韩mv国产网站| 精品系列免费在线观看| 国产亚洲一区二区三区四区 | 丝袜a∨在线一区二区三区不卡| 日本韩国精品一区二区在线观看| 亚洲一区二三区| 91精品国产全国免费观看| 日本少妇一区二区| 日韩女优制服丝袜电影| 国产一区二区三区久久久| 日本一区二区久久| 91福利精品第一导航| 图片区小说区国产精品视频| 精品国产a毛片| 不卡av在线网| 午夜视频久久久久久| 欧美电视剧免费观看| 成人黄色片在线观看| 午夜欧美大尺度福利影院在线看| 欧美日韩国产免费一区二区| 久久99精品久久久久| 国产精品三级av| 欧美色偷偷大香| 久久99国产精品久久99| 欧美国产1区2区| 欧美性生活久久| 国产酒店精品激情| 夜夜爽夜夜爽精品视频| 26uuu另类欧美亚洲曰本| 91在线丨porny丨国产| 日日摸夜夜添夜夜添亚洲女人| 国产性做久久久久久| 欧美在线观看一二区| 国产精品自在在线| 午夜久久久久久久久| 久久久久国产精品厨房| 99久久99精品久久久久久 | 日韩成人一级大片| 中文字幕成人在线观看| 欧美一区在线视频| 91视频观看视频| 国产综合成人久久大片91| 亚洲黄色av一区| 久久综合狠狠综合| 欧美精品日韩一本| 91国在线观看| 成人av电影在线| 另类中文字幕网| 丝袜美腿高跟呻吟高潮一区| 一区二区三区在线观看网站| 久久久精品免费免费| 欧美一激情一区二区三区| 欧洲色大大久久| 成人午夜又粗又硬又大| 韩国午夜理伦三级不卡影院| 视频一区视频二区中文字幕| 一区二区三区日韩精品| 国产精品污网站| 国产亚洲一区二区三区四区| 日韩欧美久久久| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲精品在线免费播放| 91精品国产色综合久久| 欧美视频第二页| 一本到不卡精品视频在线观看| 国产白丝精品91爽爽久久| 国产一区二区在线视频| 麻豆精品久久久| 天堂一区二区在线| 亚洲亚洲精品在线观看| 亚洲综合免费观看高清完整版 | 色视频成人在线观看免| 成人免费高清在线| 国产高清在线观看免费不卡| 九色综合国产一区二区三区| 激情文学综合网| 韩国一区二区三区| 国产美女av一区二区三区| 懂色av中文一区二区三区| 国产成人精品网址| www.在线成人| 91麻豆国产在线观看| 欧美日韩在线免费视频| 欧美区视频在线观看| 91精品国产色综合久久不卡电影| 日韩视频在线你懂得| 26uuuu精品一区二区| 国产女人水真多18毛片18精品视频 | 欧美日韩中字一区| 91精品国产综合久久小美女| 日韩欧美123| 国产欧美日韩另类视频免费观看| 中文一区二区完整视频在线观看| 亚洲欧美一区二区在线观看| 亚洲午夜电影在线| 日韩成人一级片| 国产成人免费av在线| 91精品办公室少妇高潮对白| 欧美一区二区在线免费观看| 久久综合九色欧美综合狠狠 | 国产a级毛片一区| 日本道免费精品一区二区三区| 欧美日本国产视频| 欧美精品一区二区三区高清aⅴ| 国产精品三级在线观看| 亚洲一区二区三区在线| 久久精品国产网站| 96av麻豆蜜桃一区二区| 91精品国产综合久久精品app| 久久精品这里都是精品| 一级中文字幕一区二区| 久久成人久久爱| 一本大道久久a久久精二百| 日韩欧美的一区二区| 亚洲精品国产第一综合99久久| 美女一区二区在线观看| 色婷婷国产精品综合在线观看| 欧美一区二区三区视频免费| 国产精品国产三级国产aⅴ无密码| 午夜电影一区二区| 99久久免费精品| 2021国产精品久久精品| 亚洲影视资源网| 成人app下载| 久久免费国产精品| 免费在线观看成人| 欧美亚洲综合色| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品国产三级国产aⅴ中文 | 91精品国产综合久久国产大片| 亚洲三级电影全部在线观看高清| 狠狠狠色丁香婷婷综合激情 | 久久精品国产亚洲a| 欧美色图一区二区三区| 欧美经典一区二区| 精品影视av免费| 欧美人狂配大交3d怪物一区| 中文字幕一区二区不卡| 懂色一区二区三区免费观看| 欧美精品一区二区精品网| 午夜欧美电影在线观看| 在线这里只有精品| 亚洲另类色综合网站| 99久久久久久| 国产日韩视频一区二区三区| 国产最新精品精品你懂的| 欧美大白屁股肥臀xxxxxx| 男女性色大片免费观看一区二区| 欧美精品丝袜中出| 日韩精品国产欧美| 7777精品伊人久久久大香线蕉完整版 |