来自JSON和MINIJson的2d数组

时间:2014-08-24 12:30:21

标签: c# json unity3d multidimensional-array

我在JSON上有点小说,而且c# 无论如何,我需要加载一些JSON并在unity3d中基于一个带有JSON文件内容的二维数组设置一个游戏网格。

我使用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]

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

1 个答案:

答案 0 :(得分:0)

试试这个:

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]);
    }
}