.net 关于JSON转换为对象时出现的:数据协定类型 “***”无法反序列化,因为未找到必需的数据成员 **(字段名)

来源:互联网 发布:上海华腾软件面试 编辑:程序博客网 时间:2024/06/05 23:46

[System.Runtime.Serialization.DataMember(Name = "appPicPath")]

关于使用 DataContractJsonSerializer 把json字符串序列化成 .net类对象 出现数据协定类型 “***”无法反序列化,因为未找到必需的数据成员 **(字段名)的解决方案


看代码

public Test{    private string a;    public string A{get ; set ;}}

将其改为:
public Test{    public string A ;  }


此上代码借于 http://www.cnblogs.com/vs-bug/archive/2011/03/01/1967901.html  

做了以上修改后转换时,异常消除。
这应该是编译后 a 后会自动添加k__BackingField 这样的字样。具体原因,我也无法解释,

解决方案二:

貌似还有一种 解决方案,但为证实
public Test{    [System.Runtime.Serialization.DataMember(Name = "A")]    public string A {get ; set;};  }



原创粉丝点击