DataContractJsonSerializer为F#记录类型创建JSON,该JSON类型在每个属性名称后均包含“ @”字符。有谁知道是否有可能获得不带符号结尾的JSON?
{"heart_rate@":20,"latitude@":45.0,"longitude@":108.0,"name@":"Rambo"}
这是我用来输出此示例的脚本
#r "System.Xml" #r "System.Runtime.Serialization" open System.Text open System.Runtime.Serialization.Json open System.IO type Update = { name: string; latitude: decimal; longitude: decimal; heart_rate: int} let update = {name = "Rambo"; latitude = 45.0m; longitude = 108.0m; heart_rate = 20} let serializer = new DataContractJsonSerializer( typeof<Update> ) let stream = new MemoryStream() let data = serializer.WriteObject(stream, update) let updateData = stream.ToArray() let json = (Encoding.UTF8.GetString(updateData)) printfn "%s" json
尽管Daniel的解决方案可以正常工作,但是必须向记录中的每个属性添加属性是一件很乏味的事情。事实证明,Json.NET开箱即用地生成了更具可读性的JSON。对于我的应用程序,我不需要专门使用DataContractSerializer,所以它是JSON.net!