Проверьте, существует ли значение, затем запишите значение другого объекта - PullRequest
0 голосов
/ 13 июля 2020

У меня есть тело ответа JSON, как показано ниже:

[
  {
    "id": 13,
    "mentor_id": 5,
    "mentee_id": [
      141,
      184
    ],
    "status": "Active",
    "session_count": 0,
    "current_job": null,
    "email": null,
    "phone_call": null,
    "video_call": null,
    "face_to_face": null,
    "created_at": "2020- 02 - 20 20: 37: 50",
    "updated_at": "2020- 02 - 20 20: 37: 50"
  },
  {
    "id": 14,
    "mentor_id": 8,
    "mentee_id": [
      184,
      185,
      186
    ],
    "status": null,
    "session_count": 0,
    "current_job": null,
    "email": null,
    "phone_call": null,
    "video_call": null,
    "face_to_face": null,
    "created_at": "2020- 02 - 21 22: 39: 31",
    "updated_at": "2020- 02 - 21 22: 39: 31"
  }
]

Теперь я хочу проверить, содержит ли "status" «Активный» . Затем мне нужно вернуть первое значение из mentee_id.

Как мне добиться этого в C#? (Я использую Newtonsoft. JSON и NUnit)

1 Ответ

0 голосов
/ 13 июля 2020

Определите класс для захвата Mentor элементов:

class Mentor
{
    [JsonProperty("mentor_id")]
    public int MentorId { get; set; }

    [JsonProperty("mentee_id")]
    public List<int> MenteeIds { get; set; }

    public string Status { get; set; }

    // Add any other properties you might need in the same way
    // If you don't need a particular property you can safely omit it
}

Десериализуйте JSON следующим образом:

List<Mentor> mentors = JsonConvert.DeserializeObject<List<Mentor>>(json);

Затем вы можете запросить следующее:

Mentor firstActiveMentor = mentors.FirstOrDefault(m => m.Status == "Active");
if (firstActiveMentor != null)
{
    int firstMenteeId = firstActiveMentor.MenteeIds.FirstOrDefault();
}

Скрипка: https://dotnetfiddle.net/p7AnPv

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