反序列化-通过创建Class对象及属性

 

 

  1  class Program
  2     {
  3         static void Main(string[] args)
  4         {
  5             using (SyncSRV.ServiceSoapClient client = new SyncSRV.ServiceSoapClient())
  6             {
  7 
  8                 try
  9                 {
 10                     var commandText = "";
 11                     StringBuilder strSql = new StringBuilder();
 12                     strSql.Length = 0;
 13 
 14                     // 清空原始数据,在表 msp_stor_fdbck 中
 15 
 16                     strSql.Append("DELETE msp_stor_fdbck \r\n ");
 17 
 18                     // GetDIY(DIY暗访)
 19                     var jsonText = client.GetDIY().ToString();
 20                     List<dsStore> a = JsonDeserialize<List<dsStore>>(jsonText);
 21                     List<dsMR> b = JsonDeserialize<List<dsMR>>(jsonText);                    
 22 
 23                     foreach (dsStore item in a)
 24                     {
 25                         strSql.Append("INSERT INTO msp_stor_fdbck ");
 26                         strSql.Append("([stor_id] ,[nm] ,[addr] ,[fdbck_cntn], ");
 27                         strSql.Append("[last_upd_dtm] ,[iss_sts] ,[fdbck_cntn_remark]) ");
 28                         strSql.AppendFormat("VALUES ('{0}','{1}','{2}','{3}',", item.stor_id, CheckStr(item.stor_nm), CheckStr(item.stor_addr), CheckStr(item.fwFeedBackConter));
 29                         strSql.AppendFormat("'{0}','{1}','{2}' ) \r\n ", JsonDateString(item.fwFeedBackDate), item.isSeccess, CheckStr(item.FwFeedBackRemark));
 30                     }
 31 
 32                     // GetDIYMing(DIY明访)
 33                     jsonText = client.GetDIYMing().ToString();
 34                     a = JsonDeserialize<List<dsStore>>(jsonText);
 35 
 36                     foreach (dsStore item in a)
 37                     {
 38                         strSql.Append("INSERT INTO msp_stor_fdbck ");
 39                         strSql.Append("([stor_id] ,[nm] ,[addr] ,[fdbck_cntn], ");
 40                         strSql.Append("[last_upd_dtm] ,[iss_sts] ,[fdbck_cntn_remark]) ");
 41                         strSql.AppendFormat("VALUES ('{0}','{1}','{2}','{3}',", item.stor_id, CheckStr(item.stor_nm), CheckStr(item.stor_addr), CheckStr(item.fwFeedBackConter));
 42                         strSql.AppendFormat("'{0}','{1}','{2}' ) \r\n ", JsonDateString(item.fwFeedBackDate), item.isSeccess, CheckStr(item.FwFeedBackRemark));
 43                     }
 44 
 45                     // GetLOEM(LOEM暗访)
 46                     jsonText = client.GetLOEM().ToString();
 47                     a = JsonDeserialize<List<dsStore>>(jsonText);
 48 
 49                     foreach (dsStore item in a)
 50                     {
 51                         strSql.Append("INSERT INTO msp_stor_fdbck ");
 52                         strSql.Append("([stor_id] ,[nm] ,[addr] ,[fdbck_cntn], ");
 53                         strSql.Append("[last_upd_dtm] ,[iss_sts] ,[fdbck_cntn_remark]) ");
 54                         strSql.AppendFormat("VALUES ('{0}','{1}','{2}','{3}',", item.stor_id, CheckStr(item.stor_nm), CheckStr(item.stor_addr), CheckStr(item.fwFeedBackConter));
 55                         strSql.AppendFormat("'{0}','{1}','{2}' ) \r\n ", JsonDateString(item.fwFeedBackDate), item.isSeccess, CheckStr(item.FwFeedBackRemark));
 56                     }
 57 
 58                     // GetLOEMMing(LOEM明访)
 59                     jsonText = client.GetLOEMMing().ToString();
 60                     a = JsonDeserialize<List<dsStore>>(jsonText);
 61 
 62                     foreach (dsStore item in a)
 63                     {
 64                         strSql.Append("INSERT INTO msp_stor_fdbck ");
 65                         strSql.Append("([stor_id] ,[nm] ,[addr] ,[fdbck_cntn], ");
 66                         strSql.Append("[last_upd_dtm] ,[iss_sts] ,[fdbck_cntn_remark]) ");
 67                         strSql.AppendFormat("VALUES ('{0}','{1}','{2}','{3}',", item.stor_id, CheckStr(item.stor_nm), CheckStr(item.stor_addr), CheckStr(item.fwFeedBackConter));
 68                         strSql.AppendFormat("'{0}','{1}','{2}' ) \r\n ", JsonDateString(item.fwFeedBackDate), item.isSeccess, CheckStr(item.FwFeedBackRemark));
 69                     }
 70 
 71                     // GetMNC(MNC暗访)
 72                     jsonText = client.GetMNC().ToString();
 73                     a = JsonDeserialize<List<dsStore>>(jsonText);
 74 
 75                     foreach (dsStore item in a)
 76                     {
 77                         strSql.Append("INSERT INTO msp_stor_fdbck ");
 78                         strSql.Append("([stor_id] ,[nm] ,[addr] ,[fdbck_cntn], ");
 79                         strSql.Append("[last_upd_dtm] ,[iss_sts] ,[fdbck_cntn_remark]) ");
 80                         strSql.AppendFormat("VALUES ('{0}','{1}','{2}','{3}',", item.stor_id, CheckStr(item.stor_nm), CheckStr(item.stor_addr), CheckStr(item.fwFeedBackConter));
 81                         strSql.AppendFormat("'{0}','{1}','{2}' ) \r\n ", JsonDateString(item.fwFeedBackDate), item.isSeccess, CheckStr(item.FwFeedBackRemark));
 82                     }
 83 
 84                     // GetMNCMing(MNC明访)
 85                     jsonText = client.GetMNCMing().ToString();
 86                     a = JsonDeserialize<List<dsStore>>(jsonText);
 87 
 88                     foreach (dsStore item in a)
 89                     {
 90                         strSql.Append("INSERT INTO msp_stor_fdbck ");
 91                         strSql.Append("([stor_id] ,[nm] ,[addr] ,[fdbck_cntn], ");
 92                         strSql.Append("[last_upd_dtm] ,[iss_sts] ,[fdbck_cntn_remark]) ");
 93                         strSql.AppendFormat("VALUES ('{0}','{1}','{2}','{3}',", item.stor_id, CheckStr(item.stor_nm), CheckStr(item.stor_addr), CheckStr(item.fwFeedBackConter));
 94                         strSql.AppendFormat("'{0}','{1}','{2}' ) \r\n ", JsonDateString(item.fwFeedBackDate), item.isSeccess, CheckStr(item.FwFeedBackRemark));
 95                     }
 96 
 97                     // GetMRMing(MR)
 98                     jsonText = client.GetMRMing().ToString();
 99                     
100                     b = JsonDeserialize<List<dsMR>>(jsonText);
101 
102                     foreach (dsMR item in b)
103                     {
104                         strSql.Append("INSERT INTO msp_stor_fdbck ");
105                         strSql.Append("([gid_num] ,[nm] ,[addr] ,[fdbck_cntn], ");
106                         strSql.Append("[last_upd_dtm] ,[iss_sts] ,[fdbck_cntn_remark]) ");
107                         strSql.AppendFormat("VALUES ('{0}','{1}','{2}','{3}',", item.gid_num, CheckStr(item.co_nm), CheckStr(item.co_addr), item.type);
108                         strSql.AppendFormat("'{0}','{1}','{2}' ) \r\n ", JsonDateString(item.fwFeedBackDate), item.isSeccess, CheckStr(item.FwFeedBackRemark));
109                     }
110 
111                     commandText = strSql.ToString();
112                     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString());
113 
114                     con.Open();
115                     SqlTransaction tran = con.BeginTransaction();
116                     try
117                     {
118                         SqlHelper.ExecuteNonQuery(tran, System.Data.CommandType.Text, commandText, null);
119                         tran.Commit();
120                     }
121                     catch
122                     {
123                         tran.Rollback();
124                     }
125                     finally
126                     {
127                         con.Close();
128                     }
129 
130                 }
131                 catch
132                 {
133                     string ex = "";
134                 }
135 
136                 client.Close();
137             }
138         }
139 
       //静态方法 140 public static T JsonDeserialize<T>(string jsonText) 141 { 142 JavaScriptSerializer jss = new JavaScriptSerializer(); 143 return jss.Deserialize<T>(jsonText); 144 } 145      //静态方法 146 public static string JsonDateString(string jsonDate) 147 { 148 return jsonDate.Substring(0, 19); 149 } 150 151 152 public static DateTime JsonToDateTime(string jsonDate) 153 { 154 string value = jsonDate.Substring(6, jsonDate.Length - 8); 155 DateTimeKind kind = DateTimeKind.Utc; 156 int index = value.IndexOf('+', 1); 157 if (index == -1) index = value.IndexOf('-', 1); 158 if (index != -1) { kind = DateTimeKind.Local; value = value.Substring(0, index); } 159 long javaScriptTicks = long.Parse(value, System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture); 160 long InitialJavaScriptDateTicks = (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Ticks; 161 DateTime utcDateTime = new DateTime((javaScriptTicks * 10000) + InitialJavaScriptDateTicks, DateTimeKind.Utc); 162 DateTime dateTime; 163 switch (kind) 164 { 165 case DateTimeKind.Unspecified: dateTime = DateTime.SpecifyKind(utcDateTime.ToLocalTime(), DateTimeKind.Unspecified); break; 166 case DateTimeKind.Local: 167 dateTime = utcDateTime.ToLocalTime(); break; 168 default: dateTime = utcDateTime; break; 169 } 170 return dateTime; 171 } 172 173 public static string CheckStr(string str) 174 { 175 string returnStr = ""; 176 if (str != null) 177 { 178 if (str.IndexOf("'") != -1) //判断字符串是否含有单引号 179 { 180 returnStr = str.Replace("'", "''"); 181 str = returnStr; 182 } 183 } 184 return str; 185 } 186 } 187 //创建Class对象,get set 设定获取对象的属性值 188 class dsStore 189 { 190 public int stor_id { get; set; } 191 192 public string stor_nm { get; set; } 193 194 public string stor_addr { get; set; } 195 196 public string fwFeedBackConter { get; set; } 197 198 public string fwFeedBackDate { get; set; } 199 200 public string FwFeedBackRemark { get; set; } 201 202 public string type { get; set; } 203 204 public string isSeccess { get; set; } 205 } 206 207 class dsMR 208 { 209 public int gid_num { get; set; } 210 211 public string co_nm { get; set; } 212 213 public string co_addr { get; set; } 214 215 public string fwFeedBackDate { get; set; } 216 217 public string FwFeedBackRemark { get; set; } 218 219 public string type { get; set; } 220 221 public string isSeccess { get; set; } 222 } 223 }

 

posted @ 2016-08-09 16:35  王小二不在家  阅读(476)  评论(0编辑  收藏  举报