0

我正在开发 VS 2012 中的 Windows 8 Store 应用程序,并且是 C# 和 XAML 的新手。使用 JsonArray 解析 Json 提要如何从另一个数组中的数组中获取元素?

[

    {
        "item_id": 2270978,
        "item_title": "This is the title",
        "roles": [

            {
                "item_url": "http://www.blahblah.com/161089",
                "parent_url": "http://www.blahblah.com",
            },
            {
                "item_url": "http://www.blahblah.com/469888",
                "parent_url": "http://www.blahblah.com",
            }

        ],
    }
]

我认为另一个 foreach 可以在原始 foreach 中工作,但出现错误:

无法使用 [] 将索引应用于“Windows.Data.Json.IJsonValue”类型的表达式

           foreach (var item in items)
            {
                JsonObject theItem = item.GetObject();
                FeedItem feedItem = new FeedItem();

                feedItem.PubDate = System.DateTime.Now;
                feedItem.Title = theItem["item_title"].GetString();
                feedItem.Author = "Me";
                feedItem.ItemId = (int)(theItem["item_id"].GetNumber());
                feedItem.Content = theItem["item_body"].GetString();
                feedItem.Link = new Uri(theItem["permalink_url"].GetString());

                var roles = theItem["roles"].GetArray();
/* TRIED LIKE THIS DOESN'T WORK
                foreach (var role in roles)
                {
                    feedItem.ContentUrl = new Uri(role["item_url"].GetString());
                }
*/
                feed.Items.Add(feedItem);
            }
4

1 回答 1

1

您正在迭代错误的变量。应该:

            var roles = theItem["roles"].GetArray();
            foreach (var role in roles)
            {
                feedItem.ContentUrl = new Uri(role.GetObject()["item_url"].GetString());
            }

您的输入 JSON 字符串中也没有content_url元素。不应该是item_urlparent_url吗?

于 2013-04-02T15:27:01.190 回答