JavaScript Serializer序列化時間處理樣本,serializer序列化
JavaScriptSerializer序列化時間後會把時間序列化成N進位的鬼資料,於是查了下質料坐下記錄
假設list = News List<Text>(){new Text(){id=1,date='2014-03-11 00:00:00.000'}}
JavaScriptSerializer serializable = new JavaScriptSerializer();string json = serializable.Serialize(new { total = total, rows = list});//使用Regex來替換被序列化的時間json = System.Text.RegularExpressions.Regex.Replace(json, @"\\/Date\((\d+)\)\\/", match =>{DateTime dt = new DateTime(1970, 1, 1);dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));dt = dt.ToLocalTime();return dt.ToString("yyyy-MM-dd HH:mm:ss");});return json;
JavaScriptSerializer序列化HTML特殊字元
Encoding.UTF8.GetBytes("<")[0].ToString("X")就是3C
Encoding.UTF8.GetBytes("'")[0].ToString("X")就是27
Encoding.UTF8.GetBytes(">")[0].ToString("X")就是3E
最好的辦法是列一個數組,裡面列出哪些字元要進行你說的轉換
下面是Server.HtmlEncode的代碼,也是這麼做的
char ch = s[pos];
if (ch <= '>') {
switch (ch) {
case '<':
builder.Append("&lt;");
break;
case '>':
builder.Append("&gt;");
break;
case '"':
builder.Append("&quot;");
break;
case '&':
builder.Append("&amp;");
break;
default:
Debug.Assert(false, "Unexpected value for ch, ch=" + ch);
break;
}
}
else {
#if ENTITY_ENCODE_HIGH_ASCII_CHARS
Debug.Assert(ch >= 160 && ch < 256, "ch >= 160 && ch < 256");
// The seemingly arbitrary 160 comes from RFC
builder.Append("&#");
builder.Append(((int)ch).ToS......餘下全文>>
C#一般處理常式 Json序列化,使datagrid顯示外鍵
object obj = new{ ID = 2, Dept = new object(), LoginName = "admin", Password = "123"};然後調用
new JavaScriptSerializer().Serialize(obj);序列化obj 返回即可
裡面的Dept自行賦上對象即可 不過這樣序列化返回的 沒有帶[] 這個
下面是帶[]的方法,首先 執行個體化一個object數組
object ArrObj=new object[你要返回的對象數量];“你要返回的對象數量” 一般由你查詢了幾條資料 需要返回幾條決定的
然後:
ArrObj[i] = new{ ID = 2, Dept = new object(), LoginName = "admin", Password = "123"};然後序列化
new JavaScriptSerializer().Serialize(ArrObj);
例子:
//假如我有3條資料需要返回object[] ArrObj = new object[3];for (int i = 0; i < 3; i++){ ArrObj[i] = new { ID = 2, Dept = new object(), LoginName = "admin", Password = "123" };}new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ArrObj);
ArrObj[i] = new{ ID = 2, Dept = new { DepartID = 1, DepartParentID = 1, DepartName = "系統" //下面的欄位自己加 溫馨提示如果你對象裡的欄位是和輸出的一樣 就直接對象賦值 不用這麼一個一個寫 例如:Dept=Model }, LoginName = "admin", Password = "123"};