加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Json.NET将F#可变变量序列化为JSON会生成重复项

发布时间:2020-12-16 18:40:54 所属栏目:百科 来源:网络整理
导读:这是我的代码: open Newtonsoft.Json open Newtonsoft.Json.Converters type T = { mutable name : string; mutable height : int; } let a = { name = "abc"; height = 180;} a.height - 200 let b = JsonConvert.SerializeObject(a,Formatting.Indented)
这是我的代码:

open Newtonsoft.Json
 open Newtonsoft.Json.Converters

 type T = {
     mutable name : string;
     mutable height : int;
     }

 let a = { name = "abc"; height = 180;}
 a.height  <- 200
 let b = JsonConvert.SerializeObject(a,Formatting.Indented)
 printfn "%s"  b

代码的输出是:

{
  "name@": "abc","height@": 200,"name": "abc","height": 200
}

如何以正确的“@”来避免输出?

解决方法

试试这个:

[<CLIMutable>]
[<JsonObject(MemberSerialization=MemberSerialization.OptOut)>]
type T = {
    name : string;
    height : int;
    }

MemberSerialization.OptOut仅导致公共成员被序列化(跳过作为记录的实现细节的私有字段). CLIMutable属性为intended specifically for serialization,并且不必为每个成员添加可变的前缀.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读