는 다형성 배열을 포함 - 첫 번째 항목은 정수이며, :
public class GettingUniversity
{
public static List<RootObject> listOfUniversitiesRoot = new List<RootObject>();//This List contains Id and Titles of universities
public List<string> listOfUniversities = new List<string>();//list with names of the universities
private string jsonString; //string for getting data from the url
public async Task<List<RootObject>> FetchAsync(string url)
{
//getting data process goes here
using (var httpClient = new System.Net.Http.HttpClient())
{
var stream = await httpClient.GetStreamAsync(url);
StreamReader reader = new StreamReader(stream);
jsonString = reader.ReadToEnd();
}
var responseUniversities = JArray.Parse(JObject.Parse(jsonString)["response"].ToString());//parsing data from jsonstring
foreach (var universityInResponse in responseUniversities)//the foreach-loop
{
var universityRepository = new RootObject((int)universityInResponse["id"], (string)universityInResponse["title"]);
//listOfUniversitiesRoot.Add(universityRepository);//adding to the list with names of the universities
//listOfUniversities.Add(universityRepository.Title);
}
return listOfUniversitiesRoot;//returned list
}
속성이 여기에 표시됩니다 당신은 다음과 같이 할 수있는 개체를 역 직렬화하기 전에 정수 값을 필터링해야
{
"response":[
201,
{
"id":1096,
"title":"КПИ им. И. Сикорского"
},
{
"id":1135,
"title":"НУФВСУ (бывш. КГИФК)"
},
{
"id":1140,
"title":"КГАВТ им. Конашевича-Сагайдачного"
},
: 나머지는 대학 정보를 포함하는 개체입니다
var universityRepository = JToken.Parse(jsonString)["response"]
// Filter the integer value by selecting only objects
.OfType<JObject>()
// Deserialize each object to a RootObject
.Select(o => o.ToObject<RootObject>())
// Return in a List<RootObject>
.ToList();
var listOfUniversities = universityRepository
.Select(u => u.Title)
.ToList();
샘플 fiddle.
정적 또는 클래스 변수에 이러한 목록을 저장할 필요가없는 것 같습니다. 단순히 호출자에게 반환 할 수 있습니다.
출처
2017-03-21 23:43:33
dbc