WCF以Json格式返回对象,客户端以JS调用显示

很少写东西,但是看到别人写的文章自己又禁不住写点,写了有时候又211.html">觉得不好意思给大家看!

今天好不容易鼓起勇气写点……

这几天看了一些WCF的资料

第一感觉是:这玩艺太深了

第二感觉是:这玩艺,挺麻烦的(光配置就搞不明白)

今天调了半天,好不容易把这个返回Json对象,在客户端展示的实例给整理出来了。下面分享给大家

此实例:以IIS为Host承载

1、先建一个WCF Service

建一个ServiceContract接口 1 [ServiceContract]

2 public interface IJsonWCFService

 3 {

 4     /// 

 5     /// GetJsonResult

 6     /// 

 7     /// 

 8     /// 

 9     /// 

10     /// 

11     /// 为实现Json序列化,添加属性

12     /// [WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessage

BodyStyle.Wrapped)]

13     /// 

14     /// 

15     [OperationContract]

16     [WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBody

Style.Wrapped)]

17     JsonResult GetJsonResult(string name, string address, string phone);

18 }

实现这个接口

1 public class JsonWCFService : IJsonWCFService

 2 {

 3     #region IJsonWCFService Members

 4     /// 

 5     /// Implement the interface

 6     /// 

 7     /// Name

 8     /// Address

 9     /// PhoneNumber

10     /// JsonResult

11     public JsonResult GetJsonResult(string name, string address, string phone)

12     {

13         JsonResult result = new JsonResult(name, address, phone);

14         return result;

15     }

16     #endregion

17 }

这个地方好像忘记了一个返回的DataContract类

1 [DataContract]

 2 public class JsonResult

 3 {

 4     /// 

 5     /// Construct

 6     /// 

 7     public JsonResult(string name, string address, string phone)

 8     {

 9         _name = string.Format("Name:{0}", name);

10         _address = string.Format("Address:{0}", address);

11         _phoneNumber = string.Format("PhoneNubmer:{0}", phone);

12     }

13 

14     private string _name;

15     /// 

16     /// Name

17     /// 

18     [DataMember]

19     public string Name

20     {

21         get { return _name; }

22         set { _name = value; }

23     }

24     private string _address;

25     /// 

26     /// Address

27     /// 

28     [DataMember]

29     public string Address

30     {

31         get { return _address; }

32         set { _address = value; }

33     }

34     private string _phoneNumber;

35     /// 

36     /// PhoneNumber

37     /// 

38     [DataMember]

39     public string PhoneNumber

40     {

41         get { return _phoneNumber; }

42         set { _phoneNumber = value; }

43     }

2、为实现Json序列化设置,我们还得添加一个WebContentTypeMapper

(此类最终会用在Service的配置文件中)

1 using System.ServiceModel.Channels;

 2 

 3 namespace Microsoft.Ajax.Samples

 4 {

 5     /// 

 6     /// JsonContentTypeMapper

 7     /// 用在配置中

 8     /// 

 9     public class JsonContentTypeMapper : WebContentTypeMapper

10     {

11         public override WebContentFormat GetMessageFormatForContentType(string contentType)

12         {

13             if (contentType == "text/javascript")

14             {

15                 return WebContentFormat.Json;

16             }

17             else

18             {

19                 return WebContentFormat.Default;

20             }

21         }

22     }

23 }

3、添加svc文件,便于发布Service

svc文件其实是十分简单的一个文件,以下是SVC文件中的内容,可以将此文件添加在网站项目的根目录,也可以是一个子目录。对此没有太多的要求。

1 <%@ ServiceHost 
Language="C#" Debug="true" Service="JsonWCFService" %>

4、添加web.config文件

WCFService中相当一部分知识是关于配置的,关于这些内容,一直在“研究”。还没有理出来一个比较顺的思路!

1 xml version="1.0"?>

 2 <configuration>

 3   <appSettings/>

 4   <connectionStrings/>

 5   <system.web>

 6 

 7   system.web>

 8   <system.serviceModel>

 9     <behaviors>

10       <endpointBehaviors >

11         <behavior name="jsonWcfBehavior">

12           <webHttp/>

13         behavior>

14       endpointBehaviors>

15     behaviors>

16     <bindings>      

17       <customBinding>        

18         <binding name="JsonMapper">

19           

20           <webMessageEncoding

时间: 2024-12-20 19:31:00

WCF以Json格式返回对象,客户端以JS调用显示的相关文章

艾伟:WCF以Json格式返回对象,客户端以JS调用显示

很少写东西,但是看到别人写的文章自己又禁不住写点,写了有时候又觉得不好意思给大家看! 今天好不容易鼓起勇气写点-- 这几天看了一些WCF的资料 第一感觉是:这玩艺太深了 第二感觉是:这玩艺,挺麻烦的(光配置就搞不明白) 今天调了半天,好不容易把这个返回Json对象,在客户端展示的实例给整理出来了.下面分享给大家 此实例:以IIS为Host承载 1.先建一个WCF Service 建一个ServiceContract接口 1 [ServiceContract]  2 public interfac

处理xml或者json格式返回数据之EasyNet.Solr

处理xml或者json格式返回数据之easynet.solr 在easynet.solr中,有两个接口最重要,一个是编解码器接口icodec,一个是solr输出结果解析器接口isolrresponseparser<st, dt>. easynet.solr内置了两个编解码器实现:javabincodec,textcodec.javabincodec对应solr中基于javabin协议,textcodec对应solr中的xml.json等基于文本的协议.相应定义了binarycodecfacto

js将json格式的对象拼接成复杂的url参数方法_javascript技巧

var parseParam=function(param, key){ varparamStr=""; if(paraminstanceof String||param instanceof Number||param instanceof Boolean){ paramStr+="&"+key+"="+encodeURIComponent(param); }else{ $.each(param,function(i){ vark=ke

把普通对象转换成json格式的对象的简单实例_json

1.什么叫做JSON? JSON只是一种数据格式(它不是一种新的数据类型) var obj = {name: "中国", age: 5000};//->普通格式的对象 var jsonObj = {"name": "中国", "age": 5000};//->JSON格式的对象 (只要把普通对象的属性名用""(不能是'')包起来,这样的格式就是我们JSON格式的对象) var data = [

jQuery asp.net 用json格式返回自定义对象_jquery

客户端用一个html页面调用一个ashx文件(一般http处理程序),返回 json格式的自定义对象: html: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org

Asp.net实现无刷新调用后台实体类数据并以Json格式返回_实用技巧

新建一般处理程序 public class Temp { public int Index { get; set; } public string Description { get; set; } public string ImagePath { get; set; } public DateTime MyDate { get; set; } } //数据源 List<Temp> listTemp = new List<Temp>() { new Temp(){ Index=1

c++怎样让返回对象的函数不调用拷贝构造函数

  我们知道拷贝构造函数有两种"默默"的方式被调用 1. 想函数传入 值参数 2. 函数返回 值类型 今天我们讨论函数返回值类型的情况. 得到结论是 1. 当对象有拷贝构造函数(系统为我们生成.或者我们自己写拷贝构造函数)可以被隐式调用时,函数返回时会使用拷贝构造函数. 2. 当对象的拷贝构造函数声明成为explicit(不能被隐式调用时),函数返回时会使用move构造函数. 先看开始的代码. #include <iostream> #include <memory&

http返回的数据是json格式 jmeter怎么断言

问题描述 http返回的数据是json格式 jmeter怎么断言 如题: jmeter如何断言返回的json数据,麻烦详细点!!!!感谢 解决方案 php查询mysql,返回json格式数据Android客户端处理服务器端返回的Json格式数据SSH返回Json格式的数据 解决方案二: http://www.tuicool.com/articles/QJNBNr

JS对象与JSON格式数据相互转换_json

目前的项目数据交互几乎都用JQuery,所以处理流程是:前端页面数据->JS对象->jQuery提交->python处理,另外一种就是倒过来.python肯定不能直接处理JS对象数据,所以要把JS对象转换成为python能处理的一种数据格式(通常是字典dict),同样,python取数据反馈到前端也要把字典数据转换成JS能处理的对象,这个中间转换数据格式通常就是JSON. 一.JS对象转换成为JSON 流程:读取前端页面数据,组装成为JS对象,并通过jQuery的$.post()方法传递