【问题标题】:2d Array from JSON with MINIJson带有 MINIJson 的 JSON 的 2d 数组
【发布时间】:2014-10-17 18:21:43
【问题描述】:

我对 JSON 有点菜鸟,实际上也是 c# 无论如何,我需要加载一些 JSON 并基于包含 JSON 文件内容的 2d 数组在 unity3d 中设置游戏网格。

我使用来自 Darktable 的 MINIJson,我可以成功地获取简单的数据,但是当我尝试解开下面的 json 时,我的大脑冻结了 :-(

我希望有人能给我一个简短的脚本来用 MINIJson 来做。

我希望能够从这个 Json 中制作我的游戏网格:

{ “布局”:[ [1, 0, 1, 1, 1, 1, 1, 1, 1 ],

[1, 1, 1, 1, 1, 1, 1, 1, 1],

[1, 1, 1, 1, 3, 1, 1, 1, 1],

[1, 1, 0, 1, 1, 6, 1, 1, 1],

[1, 1, 1, 1, 1, 1, 1, 1, 1],

[1, 2, 1, 1, 1, 1, 1, 1, 1],

[1, 1, 1, 1, 1, 1, 1, 1, 1],

[1, 1, 1, 0, 1, 1, 1, 1, 1],

[1, 1, 1, 1, 1, 1, 1, 1, 1 ] ],

}

我可以像这样从我的 JSON 文件中获取数据

TextAsset t = (TextAsset) Resources.Load("levels/Level_0", typeof(TextAsset));
    string jsonString = t.ToString();
    var dict = Json.Deserialize(jsonString) as Dictionary<string,object>;
    Debug.Log("dict['layout'][0]: " + ((List<Object>) dict["layout"])[0]);

但是我将如何从字典中获取这个 json 到我的

int layout[9,9]

我希望有人能够提供帮助。 在此先感谢:-)

【问题讨论】:

    标签: c# json unity3d multidimensional-array


    【解决方案1】:

    试试这个:

    int[,] layout = new int[9,9];
    
    var dict = (Dictionary<string, object>)Json.Deserialize(jsonString); 
    var list = (List<object>)dict["layout"];
    
    for (int row = 0; row < 9; row++)
    {
        var items = (List<object>)list[row];
        for (int col = 0; col < 9; col++)
        {
            layout[row, col] = Convert.ToInt32(items[col]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 2019-06-29
      • 2018-04-06
      • 2014-05-21
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多