国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

c#使用json接口

2019-11-14 14:04:19
字體:
供稿:網(wǎng)友

      前些日子將項目由使用數(shù)據(jù)庫改版為使用接口,由于接口返回的xml中多了一些附加信息,導致xml轉(zhuǎn)化后的DataTable無法儲存在MemCache中。這時可以將xml序列化為其對應的類,當然由于當時對xml的序列化使用不多所以改為接收json轉(zhuǎn)化為對應的類,這里主要展示我如何使用json的。

            在接收到傳過來的json字符串后,使用JsonConvert.DeserializeObject<T>(string value);轉(zhuǎn)化為相應的類型。于是我寫下了需要轉(zhuǎn)化的第一個類型,如下:

   /// <summary>    /// 用于序列化json字符串    /// </summary>   public class JsonSet    {        public string message{set;get;}        public string code { set; get; }        public DataTable entitylist { set; get; }          }

  然后改造接口調(diào)用中間函數(shù)

      PRivate static bool GetJsonSearchData<T>(string param, string url, string method, int length, ref T jsonResult, string encodeWay = "gb2312")        {            bool isSucc = true;            StringBuilder sb = GetSearchData(param, url, method, length, encodeWay);            if (sb != null && sb.Length > 0)            {                try                {                    jsonResult = JsonConvert.DeserializeObject<T>(sb.ToString());                }                catch                {                    isSucc = false;                }            }            return isSucc;        }

 使用方法如:

1   JsonSet jset = new JsonSet();2             SearchInterface.PostSearchData<JsonSet>(parms, url, ref jset);3             if (jset != null && jset.entitylist != null)4             {5                 return jset.entitylist;6             }

        由于完全貼合json字符格式創(chuàng)建的類,返回的DataTable格式就是標準的格式,解決了在Memcache中存儲的問題。后來在使用中發(fā)現(xiàn)原先需要將DataTable轉(zhuǎn)化為相應的對象,如果直接將json轉(zhuǎn)化為相應對象,豈不是要省點事。但項目中所用的類如果都要改造的話改動太多,也不方便,后來發(fā)現(xiàn)json字符串相對這些類僅多了code、message兩個屬性,于是將對象改造為如下

1   public  class JsonTList<T>2     {3         public string code { set; get; }4         public string message { set; get; }5         public List<T> entitylist { set; get; }6     }

使用方式如

1    JsonTList<AgtInfoEntity> jT = new JsonTList<AgtInfoEntity>();2                 SearchInterface.PostSearchData<JsonTList<AgtInfoEntity>>(parms, url, ref jT);3                 if (jT != null && jT.entitylist != null && jT.entitylist.Count > 0)4                 {5                     agtInfoEntity = jT.entitylist;6                     CacheManager.Set(cacheName, agtInfoEntity);7                 }

      由此就形成了我們新的接口體系。

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 海南省| 普定县| 巴林右旗| 白银市| 武鸣县| 穆棱市| 宁陵县| 奉化市| 永吉县| 开鲁县| 陆川县| 桦川县| 酒泉市| 秦皇岛市| 大同县| 通榆县| 玉山县| 岳阳县| 潼关县| 合阳县| 北碚区| 通许县| 波密县| 托克逊县| 运城市| 鄂温| 罗平县| 新宁县| 巴彦淖尔市| 思南县| 凤山市| 彭山县| 专栏| 宝丰县| 卫辉市| 宝丰县| 淮安市| 深州市| 噶尔县| 祁连县| 芒康县|