代码之家  ›  专栏  ›  技术社区  ›  Anil Namde

DataContractJSonserializer是否为JSON键生成重影字符串?

  •  3
  • Anil Namde  · 技术社区  · 14 年前

    DataContractJsonSerializer 这是在.NET框架中添加的很好的类,可用于将对象序列化/期望化为JSON。

    下面是我正在尝试的示例

    [Serializable] class User { public string name;     public string userId; }
    

    下面是生成的输出

    输出:注意结构,其中只需要“name”而不是k_uu backingfield

    现在这是一个问题,在挖掘了这么多之后,我不确定<gt;和&u backingfield会从哪里来?

    {
    "<name>k__BackingField":"test user",
    "<userId>k__BackingField":100001}
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Community Mike Kinghan    7 年前

    这只是一个有根据的猜测。我认为这是因为您使用的是公共字段,而不是名称和用户ID的属性。

    编辑:这似乎还与您使用的是[serializable]属性而不是[datacontract]和[datamember]有关。查看此文章了解更多详细信息:

    C# automatic property deserialization of JSON