代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using UnityEngine;
namespace Assets._03_Scripte.Tools
{
public static class JsonHandle
{
//保存json文件路径
static string JsonPath(string path)
{
return Application.streamingAssetsPath + "/" + path + ".json";
}
public static void SavaJsonFile<T>(T jsonData, string path)
{
//保存json数据到本地
//如果本地没有对应的json 文件,重新创建
if (!File.Exists(JsonPath(path)))
{
File.Create(JsonPath(path));
}
string json = JsonUtility.ToJson(jsonData, true);
File.WriteAllText(JsonPath(path), json);
Debug.Log("保存成功");
}
//从本地读取json数据
public static T ReadJsonFile<T>(T t, string path)
{
if (File.Exists(JsonPath(path)))
{
string json = File.ReadAllText(JsonPath(path));
//比较傻吊,但是不需要引用,c#自带的
//JsonUtility.FromJson《好像只能form对象》,而且参数不能有get set
//参考博客:https://blog.csdn.net/kenight/article/details/78787259
// t = JsonUtility.FromJson<T>(json);
//比较实用,但是需要引用Newtonsoft.Json
t = JsonConvert.DeserializeObject<T>(json);
}
return t;
}
}
}