我正在尝试将从REST调用接收的JSON字符串反序列化为名为User的干净C#对象。然而,返回的JSON有很多我想忽略的“绒毛”。
JSON字符串如下:
{
"Items": [
{
"LoginID": "A",
"EmployeeID": "1",
"FirstName": "A",
"LastName": "A",
"MiddleName": "",
"PrimaryEmail": "A@1",
"Active": true,
"CellPhoneNumber": null,
"OrganizationUnit": null,
"ID": null,
"URI": null
},
{
"LoginID": "B",
"EmployeeID": "2",
"FirstName": "B",
"LastName": "B",
"MiddleName": "",
"PrimaryEmail": "B@2",
"Active": true,
"CellPhoneNumber": null,
"OrganizationUnit": null,
"ID": null,
"URI": null
}
],
"NextPage": null
}
我希望将其转换为User对象数组,定义为:
[DataContract]
public class User
{
[DataMember]
public string LoginID { get; set; }
[DataMember]
public string EmployeeID { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string MiddleName { get; set; }
[DataMember]
public string PrimaryEmail { get; set; }
[DataMember]
public bool Active { get; set; }
[DataMember]
public object CellPhoneNumber { get; set; }
[DataMember]
public object OrganizationUnit { get; set; }
[DataMember]
public object ID { get; set; }
[DataMember]
public object URI { get; set; }
}
我正在努力避免使用Newtonsoft.Json,因为我想创建尽可能少的依赖项。
使用标准DataContractJsonSerializer
将无效,因为它使用返回的数据流。我想避免创建一个类只是为了让JSON适合我的类结构而从不使用它,特别是如果这些类暴露给代码的用户。
简而言之,我是否只能在不使用Newtonsoft.Json的情况下反序列化JSON字符串的特定部分?如果没有,那么对JSON进行反序列化的最佳实践和最简洁的方法是什么?
由于
答案 0 :(得分:0)
我不确定你是否可以在不使用NewtonSoft.Json的情况下完成。
我通常会在您向我们展示的情况下使用其中一个选项。
当值可以为null时:
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
或总是忽略反序列化:
[JsonIgnore]
这两个选项将忽略反序列化。