F#,Json.NET 6.0和WebApi – 记录类型的序列化

前端之家收集整理的这篇文章主要介绍了F#,Json.NET 6.0和WebApi – 记录类型的序列化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Json.NET 6.0.1增加了对记录和歧视工会的F#支持.当使用Json.NET序列化F#记录类型时,我现在可以获得格式良好的JSON.

序列化如下:

let converters = [| (new StringEnumConverter() :> JsonConverter) |]
JsonConvert.SerializeObject(questionSet,Formatting.Indented,converters)

但是,当我尝试通过使用C#编写的ASP.NET WebApi 5.0服务公开我的F#类型时,序列化的JSON包括所有属性的@ -sign表示. @ -sign来自记录类型的内部备份字段(这曾经是Json.Net和F#的已知问题).

但是 – 由于我使用更新版本的Json.NET,结果应该与调用JsonConvert时的结果相同?还是JsonConvert的行为不同于JsonTextWriterand JsonTextReader?

据我从WebApi源中读取JsonMediaTypeFormatter可以看出,JsonTextWriterand JsonTextReader由WebApi使用.

您可以使用[< CLIMutable>]属性装饰您的记录:
[<CLIMutable>]
type MyDtr = {
    Message : string
    Time : string }

That’s what I do.

对于很好的XML格式,您可以使用:

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer <- true

对于好的JSON格式,您可以使用:

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

猜你在找的Json相关文章