public void DoWriteJsonArray <ENUM_FILE_NAME, T>(ENUM_FILE_NAME eFileName, T[] pWriteObj) where ENUM_FILE_NAME : System.IConvertible, System.IComparable { string strFilePath = ExtractLocalFilePath(eFileName, _strFolderPath); _pStrBuilder.Length = 0; Wrapper_ForArray <T> wrapper = new Wrapper_ForArray <T>(); wrapper.array = pWriteObj; _pStrBuilder.Append(JsonUtility.ToJson(wrapper, true)); try { if (System.IO.File.Exists(_strFolderPath) == false) { System.IO.Directory.CreateDirectory(_strFolderPath); } using (StreamWriter sw = new StreamWriter(File.Open(strFilePath, FileMode.Create), Encoding.UTF8)) { sw.Write(_pStrBuilder.ToString()); } } catch (System.Exception e) { Debug.LogWarning("경고 Json Write 에러 파일이름 : " + eFileName + " 에러 : " + e); } }
protected override bool OnWWWToResource_Array <TResource>(WWW www, ref TResource[] arrResource) { bool bSuccess = true; try { string encodedString = Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3); Wrapper_ForArray <TResource> wrapper = JsonUtility.FromJson <Wrapper_ForArray <TResource> >(encodedString); arrResource = wrapper.array; } catch { bSuccess = false; } return(bSuccess); }
static public bool DoReadJsonArray <T>(string strText, ref List <T> listOutData) where T : class, new() { bool bSuccess = true; listOutData.Clear(); try { if (strText.Contains("array") == false) { if (strText.Contains("[")) { strText = "{ \"array\": " + strText + "}"; } else { strText = "{ \"array\": [" + strText + "]}"; } } Wrapper_ForArray <T> wrapper = JsonUtility.FromJson <Wrapper_ForArray <T> >(strText); for (int i = 0; i < wrapper.array.Length; i++) { if (wrapper.array[i] != null) { listOutData.Add(wrapper.array[i]); } } } catch (System.Exception e) { Debug.LogError(nameof(DoReadJsonArray) + "Json : " + strText + " Type : " + typeof(T).Name + " Exception : " + e); bSuccess = false; } if (listOutData.Count == 0) { bSuccess = false; } return(bSuccess); }
static public bool DoReadJsonArray <T>(WWW www, out T[] arrData) { bool bSuccess = true; try { string encodedString = www.text; if (www.bytes.Length >= 3 && www.bytes[0] == 239 && www.bytes[1] == 187 && www.bytes[2] == 191) // UTF8 코드 확인 { encodedString = Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3); } Wrapper_ForArray <T> wrapper = JsonUtility.FromJson <Wrapper_ForArray <T> >(encodedString); arrData = wrapper.array; } catch { arrData = null; bSuccess = false; } return(bSuccess); }
static public bool DoReadJsonArray <T>(UnityEngine.Networking.UnityWebRequest www, out T[] arrData) { bool bSuccess = true; try { string encodedString = www.downloadHandler.text; if (www.downloadHandler.data.Length >= 3 && www.downloadHandler.data[0] == 239 && www.downloadHandler.data[1] == 187 && www.downloadHandler.data[2] == 191) // UTF8 코드 확인 { encodedString = Encoding.UTF8.GetString(www.downloadHandler.data, 3, www.downloadHandler.data.Length - 3); } Wrapper_ForArray <T> wrapper = JsonUtility.FromJson <Wrapper_ForArray <T> >(encodedString); arrData = wrapper.array; } catch { arrData = null; bSuccess = false; } return(bSuccess); }
public void DoReadJsonArray_FromResource <ENUM_FILE_NAME, T>(ENUM_FILE_NAME eFileName, out T[] arrOutData) where ENUM_FILE_NAME : System.IConvertible, System.IComparable { string strText = ""; if (_eResourcePath == EResourcePath.Resources) { strText = DoGetResource_Origin(eFileName.ToString()).text; } else if (_eResourcePath == EResourcePath.PersistentDataPath) { string strFilePath = ExtractLocalFilePath(eFileName, _strFolderPath); if (System.IO.File.Exists(strFilePath)) { strText = System.IO.File.ReadAllText(strFilePath); } } Wrapper_ForArray <T> wrapper = JsonUtility.FromJson <Wrapper_ForArray <T> >(strText); arrOutData = wrapper.array; }
static public bool DoReadJsonArray <T>(WWW www, ref List <T> listOutData) { bool bSuccess = true; listOutData.Clear(); try { string encodedString = www.text; if (www.bytes.Length >= 3 && www.bytes[0] == 239 && www.bytes[1] == 187 && www.bytes[2] == 191) // UTF8 코드 확인 { encodedString = Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3); } Wrapper_ForArray <T> wrapper = JsonUtility.FromJson <Wrapper_ForArray <T> >(encodedString); for (int i = 0; i < wrapper.array.Length; i++) { listOutData.Add(wrapper.array[i]); } } catch { listOutData = null; bSuccess = false; } return(bSuccess); }