web api 返回数据XML JSON

时间:2021-12-29 21:57:16

  WEBAPI返回的数据格式一般是XML和JSON.能根据请求的要求返回.经过试验如下:

public object Get(string uid)

{

return new {msg="成功"};

}

// 调用.使用了jquery的AJAX方法,最后一个参数是返回结果的类型.不同参数时,后台返回的数据类型不同,看来服务端能根据前端请求的数据类型自动生成相应类型返回

$.get(‘get‘,function(data){

},‘json‘)

// 结果

{"msg":"成功"} // 返回数据类型参数写json时

<object><msg>成功</msg></object> //  写xml时

关键点:

  这个类和方法中,可以修改WEBAPI的很多属性.

  public static class WebApiConfig

      // 就是注册WEBAPI路由的这个方法里,也可以修改其它东西.

      public static void Register(HttpConfiguration config)

      {

        config.Formatters // 这个属性里包含了返回值格式的信息,经过实验,打出来的数据如下:        

          // System.Net.Http.Formatting.JsonMediaTypeFormatter // 这个是JSON格式,排在第一位,应该是默认
          // System.Net.Http.Formatting.XmlMediaTypeFormatter   //  XML格式
          // System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter // 未研究
          // System.Web.Http.ModelBinding.JQueryMvcFormUrlEncodedFormatter // 未研究

      }

可以修改这个东西,通过传一个地址参数,让它默认返回JSON?以下代码从网上找的,大概如下.

  // 意思是,给jsonformatter这个格式类型增加一个"映射",在URL参数上传入 datatype=json,那么就会返回application/json类型.

  // 经过测试,可以.但还是觉得默认的就好,在前端指定返回类型就行了

  config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("datatype", "json", "application/json"));

web api 返回数据XML JSON