目前在我的开发中使用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);
}
非常感谢!
答案 0 :(得分:-1)
我建议你使用Resources加载而不是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();
一切都应该正常。