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

问题描述 投票:-1回答:1

我从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"
        }
    }
}
c# facebook unity3d
1个回答
0
投票

管理,如果它可以帮助某人,它的工作:

 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);
                }
            }
© www.soinside.com 2019 - 2024. All rights reserved.