gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:44:16 27 4
gpt4 key购买 nike

我正在开发 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
}

有没有人知道如何去掉@符号?

最佳答案

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

我不得不把它改成

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

或者更好

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

关于F# WebAPI 默认反序列化产生@符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39562341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com