首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 3.5 Web Service JSON 擴展應用:輕量級數據交換實戰

     編輯:關於ASP.NET

為什麼選擇 JSON?

  • 輕量:無 XML 標籤開銷,體積減少 30%-50%
  • 原生 JS 支持:JSON.parse()/JSON.stringify() 零依賴
  • 跨平台:語言無關文本格式,C#/Java/Python 皆有成熟庫
  • 結構靈活:對象、數組、基本類型任意組合

ASP.NET 3.5 內置 JSON 支持

配置啟用

<system.web.extensions>
  <scripting>
    <webServices>
      <jsonSerialization maxJsonLength="2147483647" />
    </webServices>
  </scripting>
</system.web.extensions>

服務端實現

[ScriptService]
public class PostService : WebService {
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public List GetPosts(int page, int size) {
        return _repo.GetPosts(page, size); // 自動序列化為 JSON
    }
    
    [WebMethod]
    public void CreatePost(Post post) { // 自動反序列化 JSON → Post
        _repo.Add(post);
    }
}

客戶端調用 (jQuery)

$.ajax({
    type: "POST",
    url: "PostService.asmx/GetPosts",
    data: JSON.stringify({ page: 1, size: 10 }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(resp) {
        renderPosts(resp.d); // ASP.NET 3.5 包裹在 .d 屬性
    }
});

JSON vs XML vs HTML 片段對比

維度JSONXMLHTML 片段
解析性能⭐⭐⭐⭐⭐⭐ (需 DOM 插入)
數據結構豐富豐富扁平
類型保真高需 Schema無
適用場景API、SPA、移動端企業集成、SOAP局部刷新、SEO

避坑指南

  • 循環引用:實體類標記 [ScriptIgnore] 或使用 DTO 斷開循環
  • 日期格式:ASP.NET 3.5 輸出 /Date(1234567890)/,客戶端需統一解析
  • 大數據量:設置 maxJsonLength 避免截斷
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved