需要在工程里导入 JsonNet 包
public class NewBehaviourScript : MonoBehaviour
{
[SerializeField]
public List<JsonData> JsonDatas = new List<JsonData>();
public void Start()
{
JsonDatas.Add(new JsonData()
{
name = "aaa",
url = "111",
});
JsonDatas.Add(new JsonData()
{
name = "bbb",
url = "222",
});
Save(JsonDatas);
}
public void Save(List<JsonData> jsonData)
{
string filePath = Application.dataPath + @"/Configs/JsonPerson.json";
FileInfo file = new FileInfo(filePath);
StreamWriter sw = file.CreateText();
string json = JsonConvert.SerializeObject(jsonData );
sw.WriteLine(json);
sw.Close();
sw.Dispose();
AssetDatabase.Refresh();
}
public void LoadPerson(ref List<JsonData> jsonData)
{
TextAsset asset = AssetDatabase .LoadAssetAtPath("Assets/Configs/JsonPerson.json",typeof(Object )) as TextAsset;
if (!asset)
return;
string strdata = asset.text;
jsonData= JsonConvert.DeserializeObject< List<JsonData>>(strdata);
Debug.Log(jsonData.Count);
}
public void RemoveData(ref List<JsonData> jsonData,string data)
{
LoadPerson(ref jsonData);
for (int i = 0; i < jsonData.Count ; i++)
{
if (jsonData[i].name == data)
{
jsonData.Remove(jsonData[i]);
}
}
Debug.Log(jsonData.Count);
Save(jsonData);
}
}
public class JsonData
{
public string name;
public string url;
}
执行完上面的代码,工程里会有一个json文件打开后 如下所示
这就已经把数据以JSON的形式存储到本地了.
public void Start()
{
RemoveData(ref JsonDatas, "aaa");
}
再观察JSON文件 效果如下
|