0

このようなJSONオブジェクトがあります

{
"totalCount": 2,
    "students": [{
        "name": "abc",
        "data": {
            "Maths": 20,
            "Science": 25
        },
        "score": 10.0
    },
    {
        "name": "xyz",
        "data": {
            "Maths": 44,
            "Science": 12
        },
        "score": 11.0
    }]
}

IEnumerable<String>この JSON オブジェクトを、すべての名前を含むにデシリアライズしたいと考えています。

欲しい - private IEnumerable<String> GetAllNames(string json)戻りたい["abc","xyz"]

これは単なるサンプル データです (宿題ではありません!!)。これを達成する方法についてのアドバイスをいただければ幸いです。私は Newtonsoft ライブラリを使用していますが、まだこれを効果的に行うことができていません。オブジェクトを反復処理して自分でリストを作成したくありません。これを行う直接的な方法はありますか?

編集- これは私が現在行っていることです

var studentList = new List<string>();

var json = JsonConvert.DeserializeObject<dynamic>(jsonString);

foreach (var data in json.students)
   {
     catalogsList.Add(data.name.toString());
   }

return catalogsList;
4

1 に答える 1

1

Try this:

private IEnumerable<string> GetAllNames(string json)
{
    JObject jo = JObject.Parse(json);
    return jo["students"].Select(s => s["name"].ToString());
}
于 2013-10-01T14:11:06.503 に答える