繁体   English   中英

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

[英]Can I omit fields when deserializing a JSON object?

使用 .NET 的DataContractJsonSerializer ,我试图将 JSON object 反序列化为我定义的 class 。
但是,我正在反序列化的 object 的字段比我需要的要多。
有没有办法让它只反序列化我在相应的 class 中指定的字段?
我试图避免这个SerializationException

无法反序列化数据协定类型“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 属性指定在反序列化时是否忽略未知数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM