C# 从JSON字符串反序列化时,我的类没有填充
我有一个名为C# 从JSON字符串反序列化时,我的类没有填充,c#,json,json.net,C#,Json,Json.net,我有一个名为rawdata的JSON字符串,格式如下: { "Base": { "RecordDescriptorWord": "0426", "ProcessingIndicator": "1", "TimeStamp": "08062018131518", "Reserved": "0", "IdentificationNumber": "9182736", "ConsumerAccountNumber": "000000000000000
rawdata
的JSON字符串,格式如下:
{
"Base": {
"RecordDescriptorWord": "0426",
"ProcessingIndicator": "1",
"TimeStamp": "08062018131518",
"Reserved": "0",
"IdentificationNumber": "9182736",
"ConsumerAccountNumber": "000000000000000372513500000221",
"PortfolioType": "R",
"AccountType": "0G",
"DateOpened": "10012014",
"CreditLimit": "000050000",
"HighestCredit": "000033486",
"TermsDuration": "REV",
"TermsFrequency": "M",
"ScheduledMonthlyPaymentAmount": "000000445"
}
}
我用这段代码来反序列化:
Base content = JsonConvert.DeserializeObject<Base>(rawdata.Content?.ToString());
您得到的结果为空,因为JSON与类结构不匹配 JSON表示一个具有单个属性
Base
的对象,其值是一个包含14个其他属性的对象,其中包括RecordDescriptorWord
和ProcessingIndicator
。但是您的类只表示内部对象(部分),而不是外部对象
简言之,您需要另一个类,正如评论中提到的:
public class Root
{
public Base Base { get; set; }
}
然后需要将JSON反序列化到这个新类中:
Root root = JsonConvert.DeserializeObject<Root>(rawdata.Content?.ToString());
Fiddle:
公共类根{public Base{get;set;}}}
Root root = JsonConvert.DeserializeObject<Root>(rawdata.Content?.ToString());
Base content = root.Base;