JSaver
JEngine现已支持JSaver,是数据持久化的工具
JSaver能干什么?
- 将数据转字符串/JSON字符串
- AES加密
- 存储本地
- 从本地加载(支持泛型)
- 获取本地是否有Key
- 删除本地Key
APIs
string SaveAsString<T>(string dataName, T val, string encryptKey)
string SaveAsJSON<T>(string dataName, T val, string encryptKey)
byte[] SaveAsProtobufBytes<T>(string dataName, T val)
string GetString(string dataName, string encryptKey)
int GetInt(string dataName, string encryptKey)
short GetShort(string dataName, string encryptKey)
long GetLong(string dataName, string encryptKey)
decimal GetDecimal(string dataName, string encryptKey)
double GetDouble(string dataName, string encryptKey)
float GetFloat(string dataName, string encryptKey)
bool GetBool(string dataName, string encryptKey)
T GetObject<T>(string dataName, string encryptKey)
T GetObjectFromJSON<T>(string dataName, string encryptKey)
T GetObjectFromProtobuf<T>(string dataName, string encryptKey)
bool HasData(string dataName)
DeleteData(string dataName)
DeleteAll()
如何使用
在您的热更工程里,引入以下命名空间
using JEngine.Core;
保存字符串,配置加密密码和数据名称
JSaver.SaveAsString("data to save", "dataName", "1234567890987654");//Set a data to local storage
可获取返回的加密值
var encryptStr = JSaver.SaveAsString("data to save", "dataName", "1234567890987654");//set and get the encrypted data string
获取数据:
var decryptStr = JSaver.GetString("dataName", "1234567890987654");
恭喜!成功使用!
扩展
Demo示例(包含90%的API使用):
public class DataClass
{
public int id;
public string name;
public long money;
public long diamond;
public bool gm;
}
public static class Program
{
public static void RunGame()
{
/*
* ====================================
* JSaver EXAMPLE
* ====================================
*/
JSaver.SaveAsString("data to save", "dataName", "1234567890987654");//Set a data to local storage
var encryptStr = JSaver.SaveAsString("data to save", "dataName", "1234567890987654");//set and get the encrypted data string
Log.Print($"[JSaver] Str Encrypted result: {encryptStr}");
var decryptStr = JSaver.GetString("dataName", "1234567890987654");
Log.Print($"[JSaver] Str Decrypted result: {decryptStr}");
//save custom class
DataClass data = new DataClass
{
id = 666,
name = "JEngine牛逼",
money = 999999,
diamond = 999999,
gm = true
};
encryptStr = JSaver.SaveAsJSON(data, "playerData", "password_is_this");
Log.Print($"[JSaver] Custom Class Encrypted result: {encryptStr}");
decryptStr = JSaver.GetString("playerData", "password_is_this");//Can convert to string
Log.Print($"[JSaver] Str Decrypted result: {decryptStr}");
DataClass newData = JSaver.GetObject<DataClass>("playerData", "password_is_this");//Can covert to class
}
}