1

目前在我的开发中使用 LitJson。Json 在 Unity Editor 中工作得非常好,但在 android 设备中却不行。尝试了各种加载 json 文件的方法,但没有任何效果。这是我的最新代码:

string path = Application.persistentDataPath + "/Products.json";
    string jsonString = File.ReadAllText (path);
    if(File.Exists(path)) {
    jsonParser data = JsonUtility.FromJson<jsonParser>(jsonString);

    data.products.Add (product);
    Debug.Log (data.products [1].code);

    string jsonString2 = JsonUtility.ToJson (data);
    Debug.Log (jsonString2);

    File.WriteAllText (path, jsonString2.ToString());
    } else{
        File.WriteAllText (path, jsonString);
    }

非常感谢!

4

1 回答 1

-1

我建议您使用资源加载而不是 IO,因为至少是特定于平台的。因此,如果您在项目的 Assets 文件夹的根目录中创建一个“Resources”文件夹并将您的 json 文件放入其中,使其看起来像这样“/Assets/Resources/Products.json”并将您的代码更改为此

    string jsonString = Resources.Load<string>("Products.json");
    if (jsonString != null)
    {
        jsonParser data = JsonUtility.FromJson<jsonParser>(jsonString);

        data.products.Add(product);
        Debug.Log(data.products[1].code);

        jsonString = JsonUtility.ToJson(data);
        Debug.Log(jsonString);
    }
    using (FileStream fs = new FileStream("Products.json", FileMode.Create))
    {
        using (StreamWriter writer = new StreamWriter(fs))
        {
            writer.Write(jsonString);
        }
    }
    UnityEditor.AssetDatabase.Refresh();

一切都应该正常。

于 2017-03-14T22:21:33.663 回答