国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 保康县| 霍山县| 天全县| 赤壁市| 图们市| 屏南县| 泗洪县| 元阳县| 柳河县| 炎陵县| 平顶山市| 永宁县| 湖口县| 壶关县| 西青区| 文登市| 成武县| 二连浩特市| 广安市| 武安市| 鹤庆县| 苏尼特左旗| 南江县| 马边| 淳安县| 会宁县| 巩义市| 安义县| 徐闻县| 陇南市| 南城县| 贵州省| 阿合奇县| 江孜县| 镇安县| 新龙县| 新化县| 台南县| 黄山市| 鹤山市| 漯河市|