using System;
using System.Collections;
using System.Collections.Generic;
using ET;using OpenCover.Framework.Model;
using UnityEngine;using File = System.IO.File;
/// <summary>
/// 可序列化的类
/// </summary>
[Serializable]
public class JsonData
{
public string name;
public int age;
public string[] interests;
}
public class JsonTest : MonoBehaviour
{
private string dataPath = Application.streamingAssetsPath + "/JsonTest.json";//读取的路径
private string dataCpoyPath = Application.streamingAssetsPath + "/JsonCopy.json";//保存的路径
void Start()
{
this.FromJson();
ToJson();
}
/// <summary>
/// 读取Json文件 将文本内容(Json格式)读取出来
/// </summary>
private void FromJson()
{
if (!File.Exists(this.dataPath))
{
Debug.Log("文件不存在");
return;
}
string json = File.ReadAllText(this.dataPath);//读取文件
JsonData jsonData= JsonUtility.FromJson<JsonData>(json);//将读取到的文件创建对象
foreach (var item in jsonData.interests)
{
Debug.Log(item);//输出
}
}
/// <summary>
/// 保存Json文件 将实例化的对象属性(数据)保存为文本(Json格式)
/// </summary>
private void ToJson()
{
if (!File.Exists(dataCpoyPath))//文件路径不存在就创建文件
{
File.Create(this.dataCpoyPath);
}
JsonData jsonData = new JsonData();
jsonData.name = "Zhou";
jsonData.age = 12;
jsonData.interests=new []{"draw","play"};
string json= JsonUtility.ToJson(jsonData, true);
File.WriteAllText(this.dataCpoyPath,json);//写入文件
Debug.Log("保存成功");
}
}
[Unity] 通过JsonUtility实现json数据的本地保存和读取
最新推荐文章于 2023-07-29 08:58:40 发布