F#WebAPI默认反序列化生成@符号

时间:2016-09-18 20:25:01

标签: f# json.net asp.net-web-api2

我正在使用F#Web API应用程序 - https://github.com/odytrice/Dumia

当我尝试发送以下记录的数组时,

[<CLIMutable>]
type Product = 
   { ProductID : int
     Code : string
     Name : string
     Price : decimal
     ImageUrl : string }

[<CLIMutable>]
type Inventory =
   { Product: Product
     Quantity: int }

这是我当前的WebAPI配置

let registerWebApi (app:IAppBuilder) = 

    let config = new HttpConfiguration()
    // Configure routing
    config.MapHttpAttributeRoutes()

    // Remove XML Formatter
    config.Formatters.Clear()

    let formatter = new JsonMediaTypeFormatter()
    formatter.UseDataContractJsonSerializer <- false
    config.Formatters.Add(formatter)

    config.Services.Replace(typeof<IHttpControllerActivator>, CompositionRoot())

    app.UseWebApi(config)

我的Web API正在生成以下输出

{
   Product@: {
       ProductID@: 1,
       Code@: "Bag-01",
       Name@: "Ladies Bag",
       Price@: 120,
       ImageUrl@: "/content/images/bag.jpg"
   },
   Quantity@: 15
}

有没有人知道如何摆脱@符号?

1 个答案:

答案 0 :(得分:2)

问题是由于WebAPI使用的默认DataContract。

我不得不将其改为

imagesc(jj);

xlims = get(gca, 'xlim');
ylims = get(gca, 'ylim');

set(gca, 'xtick', xlims(1):xlims(2), 'ytick', ylims(1):ylims(2))

或更好

config.Formatters
      .JsonFormatter
      .SerializerSettings
      .ContractResolver 
           <- Serialization.DefaultContractResolver()