繁体   English   中英

ASP.NET Json-访问数据问题

[英]ASP.NET Json - accessing data question

首先,我要说的是你们很棒。 我在stackoverflow上找到了很多帮助。 所以保持良好的工作。

好的,这是我的问题。 我正在尝试为facebook编写应用程序(只是尝试现在=))。 我需要JSON的帮助。

所以这是我的HomeController.cs的一部分,没什么特别的。

dynamic me2 = app2.Api("/me/feed");
ViewData["data"] = me2.data;

这是我的profile.aspx。 它的工作完美,并写出我的Facebook墙上的所有帖子。

<% foreach (JsonObject item2 in (ViewData["data"] as Facebook.JsonArray))
      { %>
        <li>
            <%=item2["message"] %>
        </li>
    <%} %>

好的,现在该解决问题了。

"data": [
      {
         "id": "100001721189066_164115910298999",
         "from": {
            "name": "Poiskus Nulaena",
            "id": "100001721189066"
         },
         "message": "bleble",
         "actions": [
            {
               "name": "Comment",
               "link": "http://www.facebook.com/100001721189066/posts/164115910298999"
            },

因为ViewData [“data”] = me2.data; 在.cs文件中,.aspx文件返回消息(在此示例中为bleble)。 但是如何访问“actions”数组中的“link”或“name”元素。 我试过了:

-ViewData [“actions”] = me2.actions; - >不起作用

-ViewData [“ actions”] = me2.data.actions; - >也不工作

-nested foreach在我的情况下不起作用

任何帮助都是有用的:P

谢谢

塞巴斯蒂安

数据是JSON数组,而不是对象。 您是在寻找第一个项目的动作,还是所有项目的集合? 我不确定这对动态对象的效果如何,但这应该给您正确的想法:

var actions = m2.data.Select(d => d["actions"]);
var actionsFromFirstItem = actions.First();

编辑

我不熟悉您正在使用的Facebook API,但我将以JSON .NET为例。 这段代码:

var allActions = from d in jsonObject["data"]
                from a in d["actions"]
                select new {name = a.Value<string>("name"), link = a.Value<string>("link")};

...会给你一个匿名对象的集合,代表阵列中所有帖子的所有动作,但它们不会绑定到任何特定的帖子。 您可以看到我如何将jsonObject [“data”]视为一个集合,并将每个元素的“actions”列为另一个集合。

因为你还没有真正定义你想要的结果,所以我现在可以帮助你。 我对facebook API了解不多,但似乎你最好使用强类型var ,并通过字符串访问其成员,而不是使用动态对象。 祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM