public FIClientDataProvider(FIBuildOptions _buildOptions, FIRBaseDataTypeContainer _typeContainer) { buildOption = _buildOptions; dataTypeContainer = _typeContainer; baseData = new FIRData(); if (System.IO.File.Exists(FilePath) == true) { string jsonStr = System.IO.File.ReadAllText(FilePath); var jsonData = JsonConvert.DeserializeObject <JObject>(jsonStr); baseData.DeserializeFromJson(dataTypeContainer, jsonData); Debug.Log("[ClientDataProvider] Loaded"); } else { Debug.Log("[ClientDataProvider] New"); } }
public void DeserializeFromJson(FIRBaseDataTypeContainer dataTypeContainer, JObject json) { this.objectDic.Clear(); this.typeCounter.Clear(); foreach (var classProp in json.Properties()) { var className = (classProp.Value as JObject)["name"].Value <string>(); var cnt = (classProp.Value as JObject)["cnt"].Value <int>(); var instArr = (classProp.Value as JObject)["instArr"].Value <JArray>(); System.Type typeObj = dataTypeContainer.TypeDic[className]; this.typeCounter.Add(typeObj, cnt); var dic = new Dictionary <int, FIRBaseData>(); foreach (JObject inst in instArr) { var created = (FIRBaseData)inst.ToObject(typeObj); dic.Add(created.uid, created); } this.objectDic.Add(typeObj, dic); } }