JavaScript Serializer序列化時間處理樣本,serializer序列化

來源:互聯網
上載者:User

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"};
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.