2014年8月25日 星期一

WCF 回傳 Json 格式

      WCF中預設的回傳格式為xml, 在資料傳輸上(例如Ajax…)用過json的人應該都比較喜愛json這種輕量級的資料格式,畢竟網路的世界,頁面反應越快越好,資料傳輸越短越好。雖然小弟至今所參與的專案較少使用到大量的WCF,但我相信總有一天會面對 (機會是給準備好的人,想到就來學習一下)。
      首先建立一個簡單的WcfService專案
image
      接著為了模擬複雜型別的資料,打開自動產生的IService1.cs,新增一個方法介面(GetMember)與一個Member類別。
image
     接著打開自動產生的Service1.svc.cs,並實做GetMember方法
image
     透過WcfTestClient測試, 可以看到回傳結果為xml格式, 資料量頗大…我只關心王小明跟他的MemberId啊…
image
以下的設定會將回傳格式修改為json格式
Step 1: 調整WebConfig, 紅框以外的為自動產生的預設值
image
Step 2, 將Mehtod加上WebInvoke Attribute, 將ResponseFormat = WebMessageFormat.Json, (這裡額外將Method = “GET”, 是為了方便測試, 請依實際狀況調整)
image
測試結果, Bravo!! 只有我要的王小明跟他的MemberId
image
資料量大幅下降了許多,但格式改為json後 WCF 的 ClientTest 程式就無法正常使用了(應該有解法,下回再來解決)。

沒有留言:

張貼留言