首先,導入Json解析庫;
第二,開始編碼;
[csharp]查看純文本
//命名空間
使用系統。木衛壹;
使用系統。集合。泛型;
使用LitJson
[csharp]查看純文本
//相關變量聲明:
私有靜態字符串mFolderName
私有靜態字符串mFileName
私有靜態字典& ltstring,string & gtDic_Value =新字典& ltstring,string & gt();
私有靜態字符串文件名{
獲取{
返回路徑。Combine(FolderName,mFileName);
}
}
私有靜態字符串文件夾名{
獲取{
返回路徑。combine(application . persistent data path,mFolderName);
}
}
[csharp]查看純文本
//初始化方法如果需要,可以重載初始化方法。
public static void Init(string pFolderName,string pFileName) {
mFolderName = pFolderName
mFileName = pFileName
Dic _值。clear();
read();
}
[csharp]查看純文本
//讀取文件並將json數據加載到字典中。
私有靜態void Read() {
如果(!目錄。存在(文件夾名)){
目錄。create directory(FolderName);
}
如果(文件。存在(文件名)){
FileStream fs =新文件流(文件名,文件模式。打開);
StreamReader sr =新的StreamReader(fs);
JsonData值= JsonMapper。to object(Sr . ReadToEnd());
foreach(var鍵入值。鑰匙){
Dic _值。Add(key,values[key])。ToString());
}
如果(fs!= null) {
fs。close();
}
如果(sr!= null) {
Sr . Close();
}
}
}
[csharp]查看純文本
//將字典數據轉換成json並保存到本地文件。
私有靜態void Save() {
string values = JsonMapper。to JSON(Dic _ Value);
調試。日誌(值);
如果(!目錄。存在(文件夾名)){
目錄。create directory(FolderName);
}
FileStream file = new FileStream(文件名,文件模式。創建);
byte[] bts =系統。Text.Encoding.UTF8.GetBytes(值);
文件。寫(bts,0,bts。長度);
如果(文件!= null) {
文件。close();
}
}
至此,簡單的保存方法基本完成。
第三,用例子;
以讀寫字符串為例:
[csharp]查看純文本
//判斷鍵值當前是否存在。
公共靜態bool HasKey(string pKey) {
返回Dic_Value。contains key(pKey);
}
[csharp]查看純文本
//讀取字符串值
公共靜態字符串GetString(string pKey) {
if(HasKey(pKey)) {
返回Dic _ Value[pKey];
}否則{
返回字符串。空的;
}
}
[csharp]查看純文本
//保存字符串值
public static void SetString(string pKey,string pValue) {
if(HasKey(pKey)) {
DIC _ Value[pKey]= pValue;
}否則{
Dic _值。Add(pKey,pValue);
}
save();
}