Как запросить объект JSON, чтобы получить список - json


0

У меня есть JSON файл, подобный следующему:

 {
 "APIs": [
      {
        "name": "ALPHA.API01.10",
        "scope": "ALPHA",
        "service": "API01",
        "version": "1.0.0.0"
      },
      {
        "name": "ALPHA.API02.12",
        "scope": "ALPHA",
        "service": "API02",
        "version": "1.2.0.3"
      },
      {
        "name": "BETA.API01.10",
        "scope": "BETA",
        "service": "API01",
        "version": "1.0.0.0"
      },
      {
       "name": "BETA.API01.20",
       "scope": "BETA",
       "service": "API01",
       "version": "2.0.0.0"
      }
]}

Я пытаюсь получить имя службы в той же области. Например, в рамках области ALPHA я хочу получить все имя службы.

Вот мой код С# для этого:

public class APIs
{
    public string name { get; set; }
    public string scope { get; set; }
    public string service { get; set; }
    public string version { get; set; }
}
public class APIObject
{
    public APIs[] APIs { get; set; }
}


JArray testArray = (JArray)jObject["APIs"];
var query = from testing in testArray
                select new APIs
                    {
                        scope = (string)testing["scope"],
                        service = (string)testing["service"],
                        version = (string)testing["version"]
                    };

List<APIs> testings = query.ToList() as List<APIs>;
var item = testings.Find(f => f.scope == "ALPHA");

С помощью этого кода я могу получить список API внутри объекта списка. Могу ли я получить лучшую идею.

  •  69
  •  1
  • 11 май 2020 2020-05-11 10:17:26

1 ответ

0

Вы можете использовать JSON.Net.

  var data = Newtonsoft.Json.JsonConvert.DeserializeObject<APIObject>(jsonString);
  var result = data.APIs.Where(x => x.scope == "ALPHA").Select(x => x.service).ToList();