为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScriptSerializer.Deserialize - 如何更改字段名称

JavaScriptSerializer.Deserialize - 如何更改字段名称

C#
慕少森 2019-07-30 15:26:05
JavaScriptSerializer.Deserialize - 如何更改字段名称在使用JavaScriptSerializer.Deserialize时,如何将JSON数据中的字段名称映射到.Net对象的字段名称?更长版本:我从服务器API(未在.Net中编码)向我发送以下JSON数据{"user_id":1234, "detail_level":"low"}我有以下C#对象:[Serializable]public class DataObject{     [XmlElement("user_id")]     public int UserId { get; set; }     [XmlElement("detail_level")]     public DetailLevel DetailLevel { get; set; }}其中DetailLevel是一个枚举,其中“低”作为其中一个值。此测试失败:[TestMethod]public void DataObjectSimpleParseTest(){     JavaScriptSerializer serializer = new JavaScriptSerializer();     DataObject dataObject = serializer.Deserialize<DataObject>(JsonData);     Assert.IsNotNull(dataObject);     Assert.AreEqual(DetailLevel.Low, dataObject.DetailLevel);     Assert.AreEqual(1234, dataObject.UserId);}最后两个断言失败,因为这些字段中没有数据。如果我将JSON数据更改为 {"userid":1234, "detaillevel":"low"}然后它通过。但我不能改变服务器的行为,我希望客户端类在C#语言中具有良好命名的属性。我不能使用LINQ to JSON,因为我希望它在Silverlight之外工作。看起来XmlElement标签没有任何效果。我不知道我在哪里知道它们是相关的,它们可能不是。你如何在JavaScriptSerializer中进行字段名称映射?它可以完成吗?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 816 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信