- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要写信给List<string>
大学名单。我已经写好了要列出的国家和城市。但在大学中,数据的表现略有不同。有 {"response":[201,
我不知道如何处理它。我成功地从 here 得到了国家.来自here我需要将大学名称写到 List<string>
.这是 code我是怎么得到国家的。我在城市中使用的类比代码。在尝试执行此行时 var universityRepository = new RootObject((int)universityInResponse["id"], (string)universityInResponse["title"]);
我有一个未处理的异常。类的完整代码:
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
}
属性在这里表示:
namespace KoshelnykTestTask
{
//Here I have set properties for FetchAsync(string url) to get countries and cities
public class RootObject
{
public int Id { get; set; }
public string Title { get; set; }
public RootObject(int Id, string Title)
{
this.Id = Id;
this.Title = Title;
}
}
}
最佳答案
您的问题是返回的 JSON 包含一个多态数组——第一个条目是一个整数,其余是包含大学信息的对象:
{
"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 .
请注意,似乎没有必要将这些列表存储在静态或类变量中——您可以简单地将它们返回给调用者。
关于c# - 从 VK API 解析大学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42939991/
我在本地系统中安装了 MySql,它有 employee数据库,我想在不使用Sqoop的情况下将数据从本地MySQL传输到Hive(大学)(我没有安装Sqoop的权限),我应该怎么做? 最佳答案 从
我创建了一个简单的数据库应用程序作为我大学作业的一部分。我使用了 Java (Eclipse IDE) 和 MySQL(命令行和 phpMyAdmin)来在独立应用程序上创建和使用数据库。问题是我的数
我有一个 IP 地址列表,其中许多将来自大学网络。找出哪些大学在此列表中的最佳方法是什么? 最佳答案 您可以使用 http://ipinfo.io (我建立的服务)为此。以下是 API 的一些示例输出
给定两个字符串,如果其中一个字符串出现在另一个字符串的最末尾,则输出 true,忽略大小写差异(换句话说,计算不应“区分大小写”)。 好的,我已经确定我需要允许输入 2 个字符串。然后我假设我需要一个
我知道有很多关于NoClassDefFoundError的帖子,他们似乎都在谈论jar文件。虽然我对 Eclipse 中的 Java 很满意,但我很困惑为什么我能想到的最简单的东西不起作用,除非他们在
我是一名优秀的程序员,十分优秀!