【问题标题】:Can I omit fields when deserializing a JSON object?反序列化 JSON 对象时可以省略字段吗?
【发布时间】:2011-05-25 17:59:19
【问题描述】:
使用 .NET 的 DataContractJsonSerializer,我正在尝试将 JSON 对象反序列化为我定义的类。
但是,我要反序列化的对象的字段比我需要的要多。
有没有办法让它只反序列化我在相应类中指定的字段?
我试图避免这种情况SerializationException:
无法反序列化数据协定类型“xxx”,因为找不到所需的数据成员“yyy”。
【问题讨论】:
标签:
.net
json
exception
deserialization
【解决方案1】:
这就是我在 .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);
祝你好运。