C # объект для JSON - как построить объект? - PullRequest
0 голосов
/ 30 августа 2018

Как будет выглядеть объект C #, o после сериализации json это выглядит так? Уже потратили на это несколько часов и не можете понять, как сделать электронную почту переменной? будет только одна «перспектива» и несколько детей.

{
    "prospects": {
        "1234": {
            "first_name": "New first name",
            "last_name": "New last name"
        },
        "some@email.com": {
            "first_name": "New first name",
            "last_name": "New last name"
        },
        "some.other@email.com": {
            "first_name": "New first name",
            "last_name": "New last name"
        }
    }
}

конечный результат должен быть

1 Ответ

0 голосов
/ 30 августа 2018

Ваша проблема в том, что ваши "ключи" являются динамическими. Это означает, что вы не можете жесткий код это. Попробуйте это:

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"
        }
    }
}

Скрипка здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...