【问题标题】:Getting array in JSON into a foreach using miniJSON使用 miniJSON 将 JSON 中的数组放入 foreach
【发布时间】:2014-06-05 12:07:23
【问题描述】:

我在 Unity 中使用 Facebook SDK 邀请人们加入我的游戏。邀请时,我会收到我邀请的人的 Facebook ID 的回复。我现在想在我的游戏中以他们作为对手实际创建一个游戏,如果我可以将 id 拆分为一个 foreach 循环,我就可以这样做,但我不知道该怎么做。

这是 JSON 响应的样子:

{"to":["755111373","1144265875"],"request":"730979703615028"}

然后,在 Unity C# 中,我使用 MiniJSON(Facebook 首选)将数据获取到这样的对象中:

var userReq = Json.Deserialize(fbresult.Text) as Dictionary<string,object>; 

现在通常,如果对象不是数组,我会像这样获取每个 json 对象的数据:

userReq["to"]

但是,由于这是一个数组,所以这是不可能的。然后我尝试将它放入这样的 foreach 循环中:

foreach(var auser in userReq["to"]){
    int fbid = auser;
}

但由于以下原因无法做到这一点:

foreach 语句无法对“object”类型的变量进行操作,因为它不包含“GetEnumerator”的定义或不可访问

我想我必须先将其放入列表或字典中,但我不确定如何做到这一点。那么如何将 JSON 值放入可以迭代的列表中呢?

【问题讨论】:

    标签: c# json dictionary unity3d


    【解决方案1】:

    您应该能够简单地将对象转换为List&lt;object&gt;,然后对其进行迭代。 例如,获取您的数据并执行以下操作:

    var userReq = Json.Deserialize(fbresult.Text) as Dictionary<string,object>; 
    
    List<object> numbers = (List<object>)(userReq["to"]);
    foreach(string s in numbers)
    {
        Debug.Log("Number: " + s);
    }
    

    将打印两个字符串

    号码:755111373
    号码:1144265875

    在控制台中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多