繁体   English   中英

Unity Facebook SDK,从 API 的“apprequests”中检索数据

[英]Unity Facebook SDK, retrieve data from 'apprequests' from API

我正在从 Facebook API 获取 /me/apprequests。 它有效,我以 JSON 格式获取数据。 事情是一切都是嵌套的,就像字典中的字典一样。

我试过的:

    Dictionary<string, object> dict = Facebook.MiniJSON.Json.Deserialize(result.RawResult) as Dictionary<string, object>;
    object data;
    string request_code = "";
    if (dict.TryGetValue("data", out data))
    {
        var rc = (((Dictionary<string, object>)data)["id"]);
        request_code = (string)rc;
    }

    Debug.Log("request_code=" + request_code);

我想我需要循环字典来获取所有的 id。

我可以确认if (dict.TryGetValue("data", out data))是否正常工作并获取数据数组的字典,但在这里失败(((Dictionary<string, object>)data)["id"]); 与铸造错误。

Json 看起来像:

{
    "data": [{
        "application": {
            "category": "Games",
            "link": "https:\/\/www.facebook.com\/games\/?app_id=2523532533",
            "name": "game name",
            "id": "23432423423"
        },
        "created_time": "2019-02-27T16:01:15+0000",
        "from": {
            "name": "David boom",
            "id": "387923432423089962"
        },
        "message": "You are invited",
        "to": {
            "name": "Dusty Spice",
            "id": "10234324421033685"
        },
        "id": "413880842521239_10156578101000000"
    },
    {
        "application": {
            "category": "Games",
            "link": "https:\/\/www.facebook.com\/games\/?app_id=2523532533",
            "name": "game name",
            "id": "23432423423"
        },
        "created_time": "2019-02-27T14:12:41+0000",
        "from": {
            "name": "David boom2",
            "id": "387923432423089962"
        },
        "message": "You are invited",
        "to": {
            "name": "Dusty Spice",
            "id": "10234324421033685"
        },
        "id": "316676422209302_10156578101000000"
    }],
    "paging": {
        "cursors": {
            "before": "NDEzODgwODQyNTIxMjM5Ojc1OTQzODY4NAZDZD",
            "after": "MzE2Njc2NDIyMjA5MzAyOjc1OTQzODY4NAZDZD"
        }
    }
}

设法使其工作,如果它会帮助某人:

 string request_code = "";

            if (dict.TryGetValue("data", out data))
            {
                int dataLength = ((List<object>)data).Count;
                for (int i = 0; i < dataLength; i++)
                {
                    var rc = ((List<object>)data)[i];
                    var rc2 = (((Dictionary<string, object>)rc)["id"]);
                    request_code = (string)rc2;
                    Debug.Log("request_code=" + request_code);
                }
            }

暂无
暂无

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

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