1. 程式人生 > >Web前後端Json格式互動

Web前後端Json格式互動

介面返回的資料格式一般有兩種,一個XML格式,一種是Json格式。目前Json格式比較多人使用,也比較方便易用。JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。

Web前端互動XML格式與Json格式的優缺點:

XML
使 用XML作為傳輸格式的優勢:
1. 格式統一, 符合標準
2. 容易與其他系統進行遠端互動, 資料共享比較方便

缺點:
1. XML檔案格式檔案龐大, 格式複雜, 傳輸佔用頻寬
2. 伺服器端和客戶端都需要花費大量程式碼來解析XML, 不論伺服器端和客戶端程式碼變的異常複雜和不容易維護
3. 客戶端不同瀏覽器之間解析XML的方式不一致, 需要重複編寫很多程式碼
4. 伺服器端和客戶端解析XML花費資源和時間

[ JSON ]


優點:
1. 資料格式比較簡單, 易於讀寫, 格式都是壓縮的, 佔用頻寬小
2. 易於解析這種語言, 客戶端JavaScript可以簡單的通過eval()進行JSON資料的讀取
3. 支援多種語言, 包括ActionScript, C, C#, ColdFusion, Java,JavaScript, Perl, PHPpython, Ruby等語言伺服器端語言, 便於伺服器端的解析
4. 因為JSON格式能夠直接為伺服器端程式碼使用, 大大簡化了伺服器端和客戶端的程式碼開發量, 但是完成的任務不變, 且易於維護

Jayrock

Jayrock是一個LGPL的開源的軟體,實現了JSON和JSON-RPC,支援微軟ASP.NET框架。

引用Jayrock.dll後,可在C#裡可以將實體類轉換為Json格式的字串,也可以將Json字串轉換為實體類。

使用:

User實體類:

public class User
    {
        public int ID { get; set; }

        public string UserName { get; set; }

        public string Pass { get; set; }

        public DateTime AddDate { get; set; }
    }

將實體類轉為為Json格式字串:
User user = new User() { ID =1, UserName="amao", Pass="mypass", AddDate=DateTime.Now};

Jayrock.Json.JsonTextWriter writer = new Jayrock.Json.JsonTextWriter();
Jayrock.Json.Conversion.JsonConvert.Export(user, writer);
string result=writer.ToString();

Result:

{"iD":1,"userName":"amao","pass":"mypass","addDate":"2017-08-06T19:21:45.5598724+08:00"}

將Json格式字串轉為實體類:

string str = "{\"iD\":1,\"userName\":\"amao\",\"pass\":\"mypass\",\"addDate\":\"2017-08-06T19:21:45.5598724+08:00\"}";
User user = (User)Jayrock.Json.Conversion.JsonConvert.Import(typeof(User), str);//json字串轉物件
有時候日期格式的欄位會因為格式不對,報“{"字串“2017 - 08 - 06T22: 58:57.2977026 + 08:00”不是有效的 AllXsd 值。"}”。這是因為裡面有空格而導致轉換失敗。