この JSON を逆シリアル化する必要があります。
{
"kind": "plus#activityFeed",
"etag": "\"JOoejvNXXEWjTp1RkvR4kuXnXWE/vHWQzjhUi3hCdDLiE71KtrP47bA\"",
"nextPageToken": "CAIQ-MGf9Z72tgIgAigC",
"title": "Google+ List of Activities for Collection PUBLIC",
"updated": "2013-05-02T01:13:01.244Z",
"items": [
{
"kind": "plus#activity",
"etag": "\"JOoejvNXXEWjTp1RkvR4kuXnXWE/AgB1ExcMum9t0T-ruWqtunO3kS0\"",
"title": "Gene gets creative - and slightly offensive - in a table-setting competition.",
"published": "2013-05-02T01:13:01.244Z",
"updated": "2013-05-02T01:13:01.244Z",
"id": "z13dezeopsqzg3y4404chhh52xnhepqxxdo",
"url": "link",
"actor": {
"id": "102458557561671030191",
"displayName": "Bob's Burgers",
"url": "link",
"image": {
"url": "link"
}
},
"verb": "post",
"object": {
"objectType": "note",
"content": "Gene gets creative - and slightly offensive - in a table-setting competition.",
"url": "link",
"replies": {
"totalItems": 0,
"selfLink": "link"
},
"plusoners": {
"totalItems": 19,
"selfLink": "link"
},
"resharers": {
"totalItems": 2,
"selfLink": "link"
},
"attachments": [
{
"objectType": "article",
"displayName": "Table-Scaping from \"Boyz 4 Now\" | BOB'S BURGERS | ANIMATION on FOX",
"content": "",
"url": "link",
"image": {
"url": "link",
"type": "image/jpeg",
"height": 150,
"width": 150
},
"fullImage": {
"url": "link",
"type": "image/jpeg"
}
}
]
},
"provider": {
"title": "Google+"
},
"access": {
"kind": "plus#acl",
"description": "Public",
"items": [
{
"type": "public"
}
]
}
},
{
"kind": "plus#activity",
"etag": "\"JOoejvNXXEWjTp1RkvR4kuXnXWE/4ijLLkjecVl_dKuv7sJ7CCnuQnc\"",
"title": "Did you recognize New Girl star Max Greenfield as the voice of \"Boyz 4 Now\" heartthrob, Boo Boo, on last...",
"published": "2013-05-02T01:12:46.516Z",
"updated": "2013-05-02T01:12:46.516Z",
"id": "z122x1ejvrz2uj4s323ffdcrgvephrjeh",
"url": "link",
"actor": {
"id": "102458557561671030191",
"displayName": "Bob's Burgers",
"url": "link",
"image": {
"url": "link"
}
},
"verb": "post",
"object": {
"objectType": "note",
"content": "Did you recognize New Girl star Max Greenfield as the voice of "Boyz 4 Now" heartthrob, Boo Boo, on last Sunday's episode of Bob's Burgers?",
"url": "link",
"replies": {
"totalItems": 3,
"selfLink": "link"
},
"plusoners": {
"totalItems": 8,
"selfLink": "link"
},
"resharers": {
"totalItems": 0,
"selfLink": "link"
},
"attachments": [
{
"objectType": "article",
"displayName": "Exclusive: Bob's Burgers First Look: New Girl's Max Greenfield Is the Boyband-er of Your Dreams",
"content": "No one can play a lovable douchebag like Max Greenfield on New Girl, but did you also know he can...",
"url": "link",
"image": {
"url": "link",
"type": "image/jpeg",
"height": 150,
"width": 150
},
"fullImage": {
"url": "link",
"type": "image/jpeg"
}
}
]
},
"provider": {
"title": "Google+"
},
"access": {
"kind": "plus#acl",
"description": "Public",
"items": [
{
"type": "public"
}
]
}
}
]
}
これは、逆シリアル化に使用するコードです。
var rootObject = JsonConvert.DeserializeObject<Classes.activities.RootObject>(e.Result);
foreach (var activity in rootObject.items)
{
}
そして、これらはクラスです:
public class Image
{
public string url { get; set; }
}
public class Actor
{
public string id { get; set; }
public string displayName { get; set; }
public string url { get; set; }
public Image image { get; set; }
}
public class Replies
{
public int totalItems { get; set; }
public string selfLink { get; set; }
}
public class Plusoners
{
public int totalItems { get; set; }
public string selfLink { get; set; }
}
public class Resharers
{
public int totalItems { get; set; }
public string selfLink { get; set; }
}
public class Image2
{
public string url { get; set; }
public string type { get; set; }
public int height { get; set; }
public int width { get; set; }
}
public class Embed
{
public string url { get; set; }
public string type { get; set; }
}
public class FullImage
{
public string url { get; set; }
public string type { get; set; }
}
public class Attachment
{
public string objectType { get; set; }
public string displayName { get; set; }
public string content { get; set; }
public string url { get; set; }
public Image2 image { get; set; }
public Embed embed { get; set; }
public FullImage fullImage { get; set; }
}
public class Object
{
public string objectType { get; set; }
public string content { get; set; }
public string url { get; set; }
public Replies replies { get; set; }
public Plusoners plusoners { get; set; }
public Resharers resharers { get; set; }
public List<Attachment> attachments { get; set; }
}
public class Provider
{
public string title { get; set; }
}
public class Item2
{
public string type { get; set; }
}
public class Access
{
public string kind { get; set; }
public string description { get; set; }
public List<Item2> items { get; set; }
}
public class Item
{
public string kind { get; set; }
public string etag { get; set; }
public string title { get; set; }
public string published { get; set; }
public string updated { get; set; }
public string id { get; set; }
public string url { get; set; }
public Actor actor { get; set; }
public string verb { get; set; }
public Object @object { get; set; }
public Provider provider { get; set; }
public Access access { get; set; }
}
public class RootObject
{
public string kind { get; set; }
public string etag { get; set; }
public string nextPageToken { get; set; }
public string title { get; set; }
public string updated { get; set; }
public List<Item> items { get; set; }
}
問題は、アクティビティの後にアイテムにアクセスできないことです.@object.attachment