Я изменил ваш JSON, чтобы он выглядел так:
{
"Command": "somecommand",
"ContractNo": "11111111",
"DocsFiles": [
{
"DocumentID": "01",
"Files": [
{
"DocKey": "Key01",
"PrimKey": "PKey01"
},
{
"DocKey": "Key01",
"PrimKey": "PKey02"
}
]
},
{
"DocumentID": "02",
"Files": [
{
"DocKey": "Key02",
"PrimKey": "PKey03"
},
{
"DocKey": "Key02",
"PrimKey": "PKey04"
}
]
}
]
}
Затем я создал три простых подходящих класса:
public class InputClass
{
public string Command { get; set; }
public string ContractNo { get; set; }
public List<DocFile> DocFiles { get; set; }
}
public class DocFile
{
public string DocumentID { get; set;}
public List<FileInfo> Files { get; set; }
}
public class FileInfo
{
public string DocFile { get; set;}
public string PrimKey { get; set; }
}
, а затем я прочитал содержимое JSON и десериализовал его, используя:
var fileContents = File.ReadAllText("DocFiles.json");
var docFiles = JsonConvert.DeserializeObject<DocFile>(fileContents);
, и он работает как заклинание. Обратите внимание, что ваш DocFiles
является коллекцией, как и пара DocKey
/ PrimKey
.
Если ваши номера контрактов и идентификаторы документов обязательно всегда нумеруются c, вы можете ввести их как целые числа, а не строки (в этом случае они теряют кавычки в JSON)