1、先建一个WCF Service

建一个ServiceContract接口 1 [ServiceContract]

public interface IJsonWCFService
{
/// <summary>
/// GetJsonResult
/// </summary>
/// <param name="name"></param>
/// <param name="address"></param>
/// <param name="phone"></param>
/// <remarks>
/// 为实现Json序列化,添加属性
/// [WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
/// </remarks>
/// <returns></returns>
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
JsonResult GetJsonResult(string name, string address, string phone);
}

实现这个接口

public class JsonWCFService : IJsonWCFService
{
#region IJsonWCFService Members
/// <summary>
/// Implement the interface
/// </summary>
/// <param name="name">Name</param>
/// <param name="address">Address</param>
/// <param name="phone">PhoneNumber</param>
/// <returns>JsonResult</returns>
public JsonResult GetJsonResult(string name, string address, string phone)
{
JsonResult result = new JsonResult(name, address, phone);
return result;
}
#endregion
}

一个返回的DataContract类

[DataContract]
public class JsonResult
{
/// <summary>
/// Construct
/// </summary>
public JsonResult(string name, string address, string phone)
{
_name = string.Format("Name:{0}", name);
_address = string.Format("Address:{0}", address);
_phoneNumber = string.Format("PhoneNubmer:{0}", phone);
} private string _name;
/// <summary>
/// Name
/// </summary>
[DataMember]
public string Name
{
get { return _name; }
set { _name = value; }
}
private string _address;
/// <summary>
/// Address
/// </summary>
[DataMember]
public string Address
{
get { return _address; }
set { _address = value; }
}
private string _phoneNumber;
/// <summary>
/// PhoneNumber
/// </summary>
[DataMember]
public string PhoneNumber
{
get { return _phoneNumber; }
set { _phoneNumber = value; }
}

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

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

using System.ServiceModel.Channels;

 namespace Microsoft.Ajax.Samples
{
/// <summary>
/// JsonContentTypeMapper
/// 用在配置中<webMessageEncoding webContentTypeMapperType="Microsoft.Ajax.Samples.JsonContentTypeMapper, JsonContentTypeMapper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
/// </summary>
public class JsonContentTypeMapper : WebContentTypeMapper
{
public override WebContentFormat GetMessageFormatForContentType(string contentType)
{
if (contentType == "text/javascript")
{
return WebContentFormat.Json;
}
else
{
return WebContentFormat.Default;
}
}
}
}

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

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

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

4、添加web.config文件

WCFService中相当一部分知识是关于配置的

<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web> </system.web>
<system.serviceModel>
<behaviors>
<endpointBehaviors >
<behavior name="jsonWcfBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="JsonMapper">
<!--此处配置相当重要,使用了我们编写的JsonContentTypeMapper类,约定返回值类型是Json-->
<webMessageEncoding webContentTypeMapperType="Microsoft.Ajax.Samples.JsonContentTypeMapper, JsonContentTypeMapper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
</webMessageEncoding>
<httpTransport manualAddressing="true"/>
</binding>
</customBinding>
</bindings>
<services>
<service name="JsonWCFService" >
<!--注意此处的endpoint配置,address和contract两个属性,在客户端Js调用时会用的上-->
<endpoint address="ajaxEndpoint" behaviorConfiguration="jsonWcfBehavior"
binding="customBinding"
bindingConfiguration="JsonMapper" contract="IJsonWCFService">
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>

WCF: 以Json格式返回对象的更多相关文章

  1. JSon_零基础_005_将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面

    将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写:po(bean)代码: package com.west.webcourse.po; /** * 第 ...

  2. JSon_零基础_005_将po(bean)对象转换为JSon格式的对象字符串,返回给界面

    将po(bean)对象转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写po(bean)类: package com.west.webcourse.po; /** * 第01步:编写be ...

  3. JSon_零基础_004_将Set集合对象转换为JSon格式的对象字符串,返回给界面

    将Set集合对象转换为JSon格式的对象字符串,返回给界面 需要导入的jar包: 编写:servlet: package com.west.webcourse.servlet; import java ...

  4. JSon_零基础_003_将Map集合对象转换为JSon格式的对象字符串,返回给界面

    将Map集合对象转换为JSon格式的对象字符串,返回给界面 需导入的jar包: 编写servlet: package com.west.webcourse.servlet; import java.i ...

  5. JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面

    将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...

  6. 如何解决jersey框架中以json格式返回数组,当数组中元素一个时json格式不对

    原文地址:http://www.cnblogs.com/swpk/p/3566536.html?utm_source=tuicool jersey 是oracle 出的一个较好的REST框架.使用此框 ...

  7. 总结的一些json格式和对象/String/Map/List等的互转工具类

    总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.ja ...

  8. 把普通对象转换成json格式的对象

    1.什么叫做JSON?JSON只是一种数据格式(它不是一种新的数据类型) var obj = {name: "中国", age: 5000};//->普通格式的对象 var ...

  9. springMVC框架下返回json格式的对象,list,map

    原文地址:http://liuzidong.iteye.com/blog/1069343 注意这个例子要使用jQuery,但是jquery文件属于静态的资源文件,所以要在springMVC中设置静态资 ...

随机推荐

  1. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---30

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  2. github的多环境应用介绍

    ssh认证中公钥如同家里大门,私钥就是钥匙,一个大门可以有多把钥匙,大门可以随便展示,钥匙却不能,必须给那些需要的人.其中,公钥的默认名字是id_rsa.pub,私钥的默认名字是id_rsa,它的权限 ...

  3. TeamViewer下载地址

    http://www.teamviewer.com/zhCN/download/linux.aspx Ubuntu配置远程访问的xrdp协议和teamviewer软件 先启用远程设置:System-& ...

  4. JavaScripts广告轮播图以及定时弹出和定时隐藏广告

    轮播图: 函数绑定在body标签内 采用3张图,1.jpg   2.jpg  3.jpg  利用定时任务执行设置图片属性 src  利用for循环可以完成3秒一次 一替换. 定时弹出广告: 由于bod ...

  5. (1)WCF托管

    wcf 托管方式有很多种,常见的托管方式,iis,was,控制台,winfrom等. 先创建一个wcf服务 IService1.cs using System.ServiceModel; namesp ...

  6. 身份识别协议枚举工具ident-user-enum

    身份识别协议枚举工具ident-user-enum   身份识别协议(Ident protocol,IDENT)是一种Internet协议,用于识别使用特定TCP端口的用户身份.服务器开启该服务后,会 ...

  7. require_once(): Failed opening required '/var/www/config/config.php' (include_path='.:') in /var/www/vendor/forkiss/pharest/src/Pharest/Register/Register.php on line 10

    环境 docker环境 错误 [Tue Jun 18 18:43:26 2019] 127.0.0.1:53980 [500]: /index.php - require_once(): Failed ...

  8. smartsvn学习(-)

    3. Day-to-day use 3.1 Everyday commands Most of the common commands you will need are in the SmartSV ...

  9. flask的安全注意事项,如何防范XSS、CSRF、JSON安全

    参考官方文档:http://docs.jinkan.org/docs/flask/security.html 1.xss Flask 配置 Jinja2 自动转义所有值,除非显式地指明不转义.这就排除 ...

  10. springnodejs

    作者 : solq 最新文档请看 http://www.springnodejs.com 本文不再更新 blog : http://www.cnblogs.com/solq/p/3574640.htm ...