Комплекс десериализации json в C# - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть json и мне нужно разобрать вложенные детали. используя Newtonsoft. Json для десериализации, но не могу разобрать этот комплекс json.

{
"name": "John",
"email": "john@gmail.com",
"data": [
    {
        "company_name": "instagram",
        "company_email": "abc@email.com",
        "org": {
            "org_name": "john-insta",
            "org_dob": "1/1/1990",
            }
    },

   {
        "company_name": "google",
        "company_email": "abc1@email.com",
        "org": {
            "org_name": "john-google",
            "org_dob": "1/1/1990",
            }
    },
]

Количество записей в «данных» может на самом деле изменяться динамически, как я могу парсировать записи для название_компании , company_email , имя_организации, org_dob .

1 Ответ

0 голосов
/ 05 февраля 2020

В чем проблема? Это кажется довольно простым JSON массивом. Настройте ваши классы следующим образом.

public class MyClass
{
    public string name { get; set; }
    public string email { get; set; }
    public List<DataClass> data { get; set; }
}

public class DataClass
{
    public string company_name { get; set; }
    public string company_email { get; set; }
    public Org org { get; set; }
    //Any other and all possible properties...
}

public class Org
{
    public string org_name { get; set; }
    public string org_dob { get; set; }
}

Затем его можно проанализировать с помощью Newtonsoft или аналогичного с использованием.

var test = JsonConvert.DeserializeObject<MyClass>(json);

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

var test = JsonConvert.DeserializeObject<MyClass>(json, 
                new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
...