使用.NET的DataContractJsonSerializer
,我试图将JSON对象反序列化为我定义的类。
但是,我反序列化的对象比我需要的字段多
有没有办法让它只反序列化我在相应类中指定的字段?
我试图避免这种SerializationException
:
无法对数据协定类型“xxx”进行反序列化,因为找不到所需的数据成员“yyy”。
答案 0 :(得分:3)
这就是我在.NET中修复大多数JSON错误的方法。我使用JSON.NET而不是内置的。
这是一个从他们的文档无耻地采取的快速示例:
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);
祝你好运。
答案 1 :(得分:0)
您可能希望了解在对象上实施IExtensibleDataObject以及启用ignoreExtensionDataObject。 ignoreExtensionDataObject属性指定在反序列化时是否忽略未知数据。