Ваша проблема в том, что ваши "ключи" являются динамическими. Это означает, что вы не можете жесткий код это. Попробуйте это:
public class RootObject
{
[JsonProperty("prospects")]
public Dictionary<string, NameModel> Prospects { get; set; }
}
public class NameModel
{
[JsonProperty("firstName")]
public string FirstName { get; set; }
[JsonProperty("lastName")]
public string LastName { get; set; }
}
Оттуда вы можете построить свой объект так:
var model = new RootObject()
{
Prospects = new Dictionary<string, NameModel>()
{
{ "1234", new NameModel() { FirstName = "Sam", LastName = "Test" }},
{ "some@email.com", new NameModel() { FirstName = "Sue", LastName = "Test" }},
{ "some.other@email.com", new NameModel() { FirstName = "Frank", LastName = "Test" }},
}
};
Что приводит к этому Json:
{
"prospects": {
"1234": {
"firstName": "Sam",
"lastName": "Test"
},
"some@email.com": {
"firstName": "Sue",
"lastName": "Test"
},
"some.other@email.com": {
"firstName": "Frank",
"lastName": "Test"
}
}
}
Скрипка здесь