我有一个看起来像这样的JSON对象
{
"totalCount": 2,
"students": [{
"name": "abc",
"data": {
"Maths": 20,
"Science": 25
},
"score": 10.0
},
{
"name": "xyz",
"data": {
"Maths": 44,
"Science": 12
},
"score": 11.0
}]
}
我想将此 JSON 对象反序列化为包含所有名称的IEnumerable<String>
。
我要—— private IEnumerable<String> GetAllNames(string json)
返回["abc","xyz"]
这只是示例数据(而不是家庭作业!!关于如何实现这一目标的任何建议将不胜感激。我正在使用牛顿软件库,但尚未能够有效地做到这一点。我不想遍历对象并自己构建列表,有什么直接的方法可以做到这一点吗?
编辑 -这就是我目前正在做的事情
var studentList = new List<string>();
var json = JsonConvert.DeserializeObject<dynamic>(jsonString);
foreach (var data in json.students)
{
catalogsList.Add(data.name.toString());
}
return catalogsList;
试试这个:
private IEnumerable<string> GetAllNames(string json)
{
JObject jo = JObject.Parse(json);
return jo["students"].Select(s => s["name"].ToString());
}