2017-01-07 20 views
0

だから私は、次のようJson配列を持っている:C#でJsonArrayをシリアライズする方法は?

{[data, [{"name":"Micheal Jackson","pic_large":"https://scontent.x.fbcdn.net/v/t1.0-1/p200x200/14909900_10154513795037597_3241587822245799922_n.jpg?oh=54ead7e0ba74b45b632d96da1515ccf8&oe=591C4938","id":"10154729171332597"} 

は、どのように私は、オブジェクトにそれを解析し、ビューに渡すためにC#でそれをシリアル化することができます。

EDIT:

{[data, [{"name":"Sayed Zubair Hashimi","pic_large":"https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/14909900_10154513795037597_3241587822245799922_n.jpg?oh=54ead7e0ba74b45b632d96da1515ccf8&oe=591C4938","id":"10154729171332597"},{"name":"Junaid Walizada","pic_large":"https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/14055012_1760562554217155_4937121194048198140_n.jpg?oh=376b49c9d04c2676ebe3d853b122165e&oe=58EA033D","id":"1821833754756701"},{"name":"Mohib Akhondzada","pic_large":"https://scontent.xx.fbcdn.net/v/t1.0-1/s200x200/14264218_592094647641140_6351146344336469735_n.jpg?oh=a8a63893d71f76c45fa3d07389f1700a&oe=59147C84","id":"648198542030750"},{"name":"Za Beah","pic_large":"https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15741112_359701871054520_6692094260041596196_n.jpg?oh=6d9a0e73f70145b821c79cbe738090a0&oe=58E5B5B5","id":"360411140983593"},{"name":"Baser Nader","pic_large":"https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15094436_10153876544626432_1550234361821853528_n.jpg?oh=e197fa712b3180a20612ecdacb01747c&oe=58E54DEC","id":"10153975726331432"},{"name":"Abasin Deniz","pic_large":"https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15698075_440749809647293_7905213567074684088_n.jpg?oh=aeb22664f458d75fc00638ca6fa4ecfc&oe=591F7BB3","id":"444098429312431"}]]} 

EDIT2:ここ は私がJsonの上に取得する方法です。

var appsecret_proof = access_token.GenerateAppSecretProof(); 

       var fb = new FacebookClient(access_token); 

       dynamic myFeed = await fb.GetTaskAsync(
        ("me/feed?fields=likes{{name,pic_large}}") 
        .GraphAPICall(appsecret_proof)); 
+0

あなたの質問に表示されているものは、有効なJSONではありません。 –

+0

これはFacebookのAPI呼び出し 'me/feed?field = likes {name、pic_large}'から得られたものです。あなたが知っている限り、いつもJsonで返されたfaebook api呼び出し。 –

+0

はい、私はfacebookが常に有効なJSONを返すことをよく知っています。私はそれとは反対のことを言わなかった。私が言ったことはあなたの質問に投稿したものが有効なJSONではないということです。それは同じことではありません。ですから、APIから取得した正確なJSON文字列を入力して、回答を更新してください。 –

答えて

2

質問に表示される文字列はすべて無効なJSONです。適切にフォーマットされたJSONは、次のようになります。

{ 
    "data": [{ 
     "name": "Micheal Jackson", 
     "pic_large": "https://scontent.x.fbcdn.net/v/t1.0-1/p200x200/14909900_10154513795037597_3241587822245799922_n.jpg?oh=54ead7e0ba74b45b632d96da1515ccf8&oe=591C4938", 
     "id": "10154729171332597" 
    }] 
} 

これをC#クラスにマップするとかなり簡単です。ただ、この構造を反映したモデルを定義します。最初に必要

string json = ... the json string shown above 
var result = JsonConvert.DeserializeObject<Result>(json); 
foreach (var feed in result.Feeds) 
{ 
    Console.WriteLine(feed.Name); 
} 
+0

「Facebook.JsonArrayタイプを暗黙的に 'string''に変換できません –

0

:その後、

public class Feed 
{ 
    [JsonProperty("id")] 
    public string Id { get; set; } 

    [JsonProperty("name")] 
    public string Name { get; set; } 

    [JsonProperty("pic_large")] 
    public string PicLarge { get; set; } 
} 

public class Result 
{ 
    [JsonProperty("data")] 
    public IList<Feed> Feeds { get; set; } 
} 

とすべての残っているようなJson.NETバックこのオブジェクト構造体へのJSONシリアライザを使用してJSON文字列をデシリアライズすることですjsonと同じプロパティを持つクラスを作成し、次のコードを使用してください:

class obj 
{ 
    public string name {get ; set; } 
    public string pic_large {get ; set; } 
    public id {get ; set; } 
} 

using System.Web.Script.Serialization; 
. 
. 
var obj = new JavaScriptSerializer().Deserialize<obj>(jsonString); 
関連する問題