首页 > 解决方案 > 从 JSON 到 Unity 的输入二维数组

问题描述

我正在尝试将 json 文件加载到统一,一切正常,直到我尝试加载 2D 数组。我的 json 文件是这种形式:

"name": "Group 1",
"ID": 0,
"Components": 8,
"RelationArray": [
  [ 0, 1, 0, 0, 0, 0, 0, 0 ],
  [ 1, 0, 0, 0, 0, 0, 0, 0 ],
  [ 0, 0, 0, 1, 0, 0, 0, 0 ],
  [ 0, 0, 1, 0, 0, 0, 0, 0 ],
  [ 0, 0, 0, 0, 0, 1, 0, 0 ],
  [ 0, 0, 0, 0, 1, 0, 1, 1 ],
  [ 0, 0, 0, 0, 0, 1, 0, 1 ],
  [ 0, 0, 0, 0, 0, 0, 1, 0 ]
]

我目前正在使用 JsonHelper 作为包装器

public class JsonHelper
{


    public static T[] FromJson<T>(string json)
    {
        Wrapper<T> wrapper = UnityEngine.JsonUtility.FromJson<Wrapper<T>>(json);
        Debug.Log(wrapper.Objects);
        return wrapper.Objects;


    }

    public static string ToJson<T>(T[] array)
    {
        Wrapper<T> wrapper = new Wrapper<T>();
        wrapper.Objects = array;
        return UnityEngine.JsonUtility.ToJson(wrapper);
    }

    [Serializable]
    private class Wrapper<T>
    {
        public T[] Objects;


    }
}

标签: jsonvisual-studiounity3dwrapper

解决方案


您是否检查过您的字符串是否为有效的 json 格式?

json 格式的字符串用“{ }”包围。

检查的好方法是将其放入在线 json 解析器中,例如http://json2csharp.com/


推荐阅读