久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

如何理解ASP.NET萬能JSON解析器-創新互聯

本篇內容介紹了“如何理解ASP.NET萬能JSON解析器”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創新互聯專注于寶雞網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供寶雞營銷型網站建設,寶雞網站制作、寶雞網頁設計、寶雞網站官網定制、成都微信小程序服務,打造寶雞網絡公司原創品牌,更為您提供寶雞網站排名全網營銷落地服務。

概念介紹
還是先簡單說說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 List<string> _GetCollection(string rawjson)
        {
            //[{},{}]
            List<string> list = new List<string>();
            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 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)
                    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);
            }
        }
    }
}

使用方法

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萬能JSON解析器”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!

新聞名稱:如何理解ASP.NET萬能JSON解析器-創新互聯
文章路徑:http://www.js-pz168.com/article44/dscoee.html

成都網站建設公司_創新互聯,為您提供營銷型網站建設網站改版定制網站服務器托管網站排名搜索引擎優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
av成人免费观看| 在线免费观看成人短视频| 色94色欧美sute亚洲线路一ni| 欧美剧情片在线观看| 国产欧美日本一区二区三区| 午夜婷婷国产麻豆精品| 丰满放荡岳乱妇91ww| 麻豆一区区三区四区产品精品蜜桃| 在线日韩国产精品| 国产日韩欧美精品电影三级在线| 亚洲电影在线播放| 成人不卡免费av| 婷婷久久伊人| 精品美女一区二区| 亚洲一区二区三区免费视频| 国产成人免费视频| 日本不卡一区二区三区视频| 91精品国产入口| 亚洲精品视频一区| 国产91高潮流白浆在线麻豆| 欧美一区二区福利| 日韩欧美在线1卡| 亚洲国产你懂的| www.在线欧美| 色综合天天综合给合国产| 久久嫩草精品久久久精品| 石原莉奈一区二区三区在线观看| 99久精品国产| 一本久久a久久精品亚洲| 久久久久久毛片| 日韩av电影免费观看高清完整版 | 91丨九色丨国产丨porny| 亚洲一卡二卡区| 国产日产欧美一区二区三区| 久久精品国产**网站演员| 九九热久久66| 欧美一区二区三区视频在线观看 | 久久综合色8888| 日本不卡在线视频| 精品国产乱码久久久久| 91精品国产乱码久久蜜臀| 亚洲无人区一区| 91精品久久香蕉国产线看观看| 91成人国产精品| 中文字幕在线观看一区| 国产成人av一区| 伊人av成人| 亚洲欧美综合网| 成人免费视频国产在线观看| 色综合中文字幕| 亚洲欧洲日韩综合一区二区| 成人午夜激情在线| 日本韩国精品一区二区在线观看| 亚洲欧美在线另类| 97精品久久久午夜一区二区三区| 欧美午夜精品久久久久久超碰| 亚洲女子a中天字幕| 99久久精品国产毛片| 欧美日韩一区视频| 午夜精品123| 久久天天狠狠| 久久久久久一二三区| 国产精品综合二区| 综合色婷婷一区二区亚洲欧美国产| 国产精品成人免费在线| 9人人澡人人爽人人精品| 欧美日韩电影一区| 日日夜夜精品视频天天综合网| 久久婷婷开心| 国产精品天天摸av网| 成人午夜在线免费| 欧美日韩成人在线| 日本在线不卡视频| 色狠狠久久av五月综合|| 欧美精品一区二区视频| 欧美大片拔萝卜| 国产一区在线精品| 91精彩视频在线观看| 亚洲国产aⅴ成人精品无吗| 精品国产乱码久久久久| 国产欧美一区二区在线观看| 国产成人av电影在线| 欧美日韩成人在线| 美日韩一区二区| 一本一道综合狠狠老| 亚洲一区二区在线免费观看视频| 狠狠色综合欧美激情| 中文字幕成人网| 91视频在线观看| 精品久久久久久久人人人人传媒 | 这里只有精品免费| 狠狠色丁香久久婷婷综| 中文字幕中文字幕在线中心一区| 亚洲国产视频在线| 日韩久久精品一区二区三区| 亚洲欧美色图小说| 精品久久久久久一区| 国产精品不卡视频| 国产日本一区二区三区| 欧美国产综合色视频| 91国产在线播放| 国产亚洲综合色| 7777精品伊久久久大香线蕉语言 | 成人av电影在线播放| 日韩视频在线观看一区二区| 国产成人av资源| 欧美成人乱码一区二区三区| 成人黄色av网站在线| 精品理论电影在线观看| av成人免费在线观看| 久久亚区不卡日本| 91手机在线播放| 日本一区二区免费在线 | 久久久久久99精品| 99电影在线观看| 欧美激情综合在线| 国产一区二区高清不卡| 综合精品久久久| 欧美另类一区| 亚洲国产欧美另类丝袜| 中文字幕久久综合| 看电视剧不卡顿的网站| 欧美日韩激情一区二区三区| 国产麻豆成人精品| 精品噜噜噜噜久久久久久久久试看| av资源站一区| 欧美国产精品一区二区三区| 激情小说综合区| 一区二区三区四区视频精品免费| 午夜精品视频在线观看一区二区| 视频一区视频二区中文| 欧美中文字幕亚洲一区二区va在线| 精品一区二区三区视频在线观看| 制服.丝袜.亚洲.中文.综合| 99视频国产精品| 亚洲国产精品激情在线观看| 麻豆亚洲一区| 日韩专区中文字幕一区二区| 欧美网站一区二区| 成人一区二区三区在线观看| 国产亚洲一区字幕| 久久精品人成| 爽爽淫人综合网网站| 欧美精品一级二级三级| 91在线观看污| 亚洲免费观看高清完整版在线 | 亚洲成人在线观看视频| 在线观看一区日韩| 成人性视频免费网站| 国产精品丝袜91| 水蜜桃一区二区| 国产在线精品一区二区夜色| 精品成人佐山爱一区二区| 精品999在线观看| 午夜精品久久久久久久久| 欧美日韩三级一区| 91首页免费视频| 一区二区在线观看av| 欧美在线观看一二区| 成人a区在线观看| 亚洲视频精选在线| 在线观看av一区| 99久久精品免费精品国产| 亚洲欧美日韩电影| 欧美怡红院视频| 91在线一区二区三区| 亚洲一区二区av在线| 欧美精品一卡二卡| 国产成人免费电影| 亚洲大片免费看| 欧美一级专区免费大片| 国产一区二区免费在线观看| 日韩av一二三| 久久亚洲一级片| 亚洲国产高清国产精品| 粉嫩aⅴ一区二区三区四区| 国产精品第五页| 欧美综合亚洲图片综合区| 2019国产精品视频| 午夜欧美2019年伦理| 欧美电影免费观看高清完整版在线观看 | 国产精品日韩欧美一区二区| 亚洲mv在线观看| 精品美女在线观看| 色噜噜狠狠一区二区三区| 国产成人高清视频| 一区二区三区中文在线观看| 欧美久久久久免费| 久久久久久亚洲精品不卡4k岛国| 精品一区二区三区视频 | 动漫美女被爆操久久久| 日本中文一区二区三区| 国产午夜精品一区二区| 制服国产精品| yellow视频在线观看一区二区| 日本一区中文字幕| 国产精品污网站| 欧美人牲a欧美精品| 九九九九九精品| 国产成人精品免费网站|