c# - Получение значения из массива объектов - PullRequest
0 голосов
/ 07 мая 2020

Я вызываю внешний API из моего c# приложения, которое возвращает данные в виде массива json, тело ответа выглядит следующим образом:

    {
        "result": [
            {
                "name": "Tom",
                "id": "EM123"
            },
            {
                "name": "John",
                "id": "EM154"
            }
        ]
    }

В моем c# приложении i хотите получить только Id 1-го элемента, для тела ответа выше это будет EM123 ..

Выше приведен пример кода из моего объекта Obj массива Object, который я хотел бы получить "EM123"

1 Ответ

1 голос
/ 07 мая 2020

Моя первая рекомендация - использовать https://app.quicktype.io. Если вы передадите ему ответ JSON, как вы указали, он даст вам соответствующее определение объекта C#. В этом случае определение выглядит так:

  public partial class ApiResponse
    {
        [JsonProperty("result")]
        public Result[] Result { get; set; }
    }

    public partial class Result
    {
        [JsonProperty("name")]
        public string Name { get; set; }

        [JsonProperty("id")]
        public string Id { get; set; }
    }
}

После добавления этих двух классов вы сможете сделать следующее:

var apiResponse = JsonConvert.DeserializeObject<ApiResponse>(reponse);
Console.WriteLine("This is what I need: " + apiResponse.Result.First().Id);

Надеюсь, это поможет.

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