如何使用WWW类获取我的文件JSON,然后将其反序列化为数组?

时间:2017-04-12 07:43:47

标签: c# json unity3d

我想在服务器中获取我的JSON文件,然后将其反序列化为游戏对象... 所以,我确定我要使用WWW类......

这是我的剧本

IEnumerator LoadPertanyaanData() {

    WWW wwwDataFilePath = new WWW (dataFilePath);
    yield return wwwDataFilePath;

    string dataAsJSON = wwwDataFilePath.text;
    DataController loadedData = JsonUtility.FromJson<DataController> (dataAsJSON);
    allKategori = loadedData.allKategori;

}

我有一些错误:

ArgumentException:无法将JSON反序列化为类型&#39; DataController的新实例。&#39; UnityEngine.JsonUtility.FromJson [DataController](System.String json)(在C:/buildslave/unity/build/artifacts/generated/common/modules/JSONSerialize/JsonUtilityBindings.gen.cs:24) DataController + c__Iterator0.MoveNext()(在Assets / Scripts / DataController.cs:35) UnityEngine.SetupCoroutine.InvokeMoveNext(IEnumerator枚举器,IntPtr returnValueAddress)(在C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

1 个答案:

答案 0 :(得分:1)

你的问题似乎与这一行有关:

string dataAsJSON = File.ReadAllText(wwwDataFilePath.text);

File.ReadAllText方法采用本地文件名或路径。如果输入包含本地文件路径名中无效的某些字符,它将抛出ArgumentException

您似乎收到此异常,因为根据您的评论,输入字符串为http://localhost/game/data.json,其中包含无效字符:

text对象上的WWW属性是从远程网址获取string所需的全部内容:

string dataAsJSON = wwwDataFilePath.text;