Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从JSON字符串反序列化时,我的类没有填充_C#_Json_Json.net - Fatal编程技术网

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;