【发布时间】:2014-12-23 19:55:43
【问题描述】:
我在 JSON 中有这个(数据更改以保护有罪者):
{"members" : [{"Name":"Mick Jagger","Status":"ACTIVE","ExpireDate":"11/19/2015","TermType":"MONTH","State":"NY","Address2":"","Address1":"123 Anystreet","Type":"PREMIUM","EmailAddress":"mick.jagger@stickyfingers.com","Zip":"12345","Country":"US","City":"New York","Term":"12"},
{"Name":"Keith Richards","Status":"ACTIVE","ExpireDate":"11/19/2015","TermType":"ANNUAL","State":"CT","Address2":"","Address1":"5150 Main St","Type":"PREMIUM","EmailAddress":"keef@xpensivewinos.net","Zip":"45678","Country":"US","City":"New York","Term":"1"}]}
我有这门课:
public class Member
{
public string Company_Num { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Status { get; set; }
public string ExpireDate { get; set; }
public string TermType { get; set; }
public string State { get; set; }
public string Address2 { get; set; }
public string Address1 { get; set; }
public string Type { get; set; }
public string EmailAddress { get; set; }
public string Zip { get; set; }
public string Country { get; set; }
public string City { get; set; }
public string Term { get; set; }
}
public class MemberList
{
public List<Member> members { get; set; }
}
当我将其反序列化为数据集时,它运行良好。但是……
当我生成 MemberList 类时,我忘记了 JSON 中的“Name”需要拆分为 FirstName 和 LastName。有没有办法同时反序列化 JSON 对象并拆分“名称”? (所以 FirstName 是“Keith”,LastName 是“Richards”等等。)
以下是我将其反序列化为 MemberList 时的样子:
public static MemberList memList()
{
WebClient atv = new WebClient();
var data = atv.DownloadString("https://www.somewebsvc.com/memberships");
MemberList m = Newtonsoft.Json.JsonConvert.DeserializeObject<MemberList>(data);
return m;
}
【问题讨论】:
-
你将如何用多个单词分割名字?我认为您应该重新考虑拆分它们
-
我们已经确定了如何处理。我对此并不满意,但这正是客户想要的。
-
您可以创建两个字段,然后在 getter 中随意拆分
Name -
是的。一旦我将新字段放入其中,foreach 循环就会自行编写。没有什么比公开卑躬屈膝更能动脑筋的了。