反序列化JSON对象时可以省略字段吗?

问题描述

| 使用.NET \的“ 0”,我试图将JSON对象反序列化为我定义的类。 但是,我要反序列化的对象具有比我所需更多的字段。 有没有办法使它只反序列化我在相应类中指定的字段? 我正尝试避免此“ѭ”:   数据协定类型\'xxx \'无法反序列化,因为未找到所需的数据成员'yyy \'。     

解决方法

这就是我修复.NET中大多数JSON错误的方法。我使用JSON.NET而不是内置的。 http://json.codeplex.com/ 这是一个从他们的文档中毫不客气的简单例子:
Product product = new Product();

product.Name = \"Apple\";
product.Expiry = new DateTime(2008,12,28);
product.Price = 3.99M;
product.Sizes = new string[] { \"Small\",\"Medium\",\"Large\" };

string output = JsonConvert.SerializeObject(product);
//{
//  \"Name\": \"Apple\",//  \"Expiry\": \"\\/Date(1230375600000+1300)\\/\",//  \"Price\": 3.99,//  \"Sizes\": [
//    \"Small\",//    \"Medium\",//    \"Large\"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);
祝好运。     ,您可能需要看看在对象上实现IExtensibleDataObject以及启用ignoreExtensionDataObject。 ignoreExtensionDataObject属性指定在反序列化时是否忽略未知数据。