0

私はFacebookアプリを開発しています。このアプリでは、ユーザーの友達の詳細を次のように取得しています。

dynamic result = client.Get("me/friends"); //it gives friend's data for id, name

それはでデータを与えます

{
  "data": [
    {
      "name": "Steven", 
      "id": "57564897"
    }, 
    {
      "name": "Andy", 
      "id": "8487581"
    }
}

ここで、このデータを解析して保存したいと思います。自分のやり方で使えるように。

JSON.NETを使用して解析し、データを次のように表示しようとしました。

var model = JsonConvert.DeserializeObject<FriendDetail>(result.data);

クラスで:

public class FriendDetail
    {
        public string id { get; set; }
        public string name { get; set; }

        public FriendDetail(string i, string n)
        {
            id = i;
            name = n;
        }
    }

return View(model)これで、ビューを「 」として渡すことができます。

しかし、それは私にエラーを与えます:The best overloaded method match for 'Newtonsoft.Json.JsonConvert.DeserializeObject<FBApp.Models.FBFriendDetail>(string)' has some invalid arguments

なぜこのエラーが発生しているのですか?

このjsonデータの解析を手伝ってください。

また、 jsonデータを解析して保存し、ビューに表示するためのより良い方法はありますか?

助けてください

4

1 に答える 1

4

オブジェクトのリストをFriendDetail単一のFriendDetailオブジェクトに逆シリアル化しようとしています。次のことを試してください。

var jObject = JObject.Parse(result.ToString());
var model = JsonConvert.DeserializeObject<List<FriendDetail>>(jObject["data"].ToString());

編集

これは私がそれをテストした方法です:

var result = 
    @"{
        ""data"": [
        {
            ""name"": ""Steven"", 
            ""id"": ""57564897""
        }, 
        {
            ""name"": ""Andy"", 
            ""id"": ""8487581""
        }]
    }";

var jObject = JObject.Parse(result.ToString());
var model = JsonConvert.DeserializeObject<List<FriendDetail>>(jObject["data"].ToString());
于 2012-07-06T14:50:05.037 に答える