private static string GetString(LKJsonObj jsonObject) { TabLevel++; string tabString = string.Empty; for (int i = 0; i < TabLevel; i++) { tabString += "\t"; } StringBuilder sb = new StringBuilder(); if (isFromArray) { sb.Append("\n"); } sb.Append(tabString.Substring(0, tabString.LastIndexOf('\t'))); sb.Append("{\n"); Dictionary <string, object> jsonDic = jsonObject.GetDictionaryData(); if (jsonDic != null) { IEnumerator enumer = jsonDic.GetEnumerator(); while (enumer.MoveNext()) { KeyValuePair <string, object> kvp = (KeyValuePair <string, object>)enumer.Current; LKJsonObj dirObj = kvp.Value as LKJsonObj; if (dirObj == null) { sb.Append(string.Format("{0}\"{1}\":\"{2}\",\n", tabString, kvp.Key, DisPlayContent(kvp.Value.ToString()))); } else if (dirObj.GetDataType() == typeof(Dictionary <string, object>)) { sb.Append(string.Format("{0}\"{1}\":{2},\n", kvp.Key, GetString(dirObj))); } else if (dirObj.GetDataType() == typeof(List <object>)) { sb.Append(string.Format("{0}\"{1}\":{2},\n", tabString, kvp.Key, GetArrayString(dirObj.GetListObject()))); } else if (dirObj.GetDataType() == typeof(string)) { sb.Append(string.Format("{0}\"{1}\":\"{2}\",\n", tabString, kvp.Key, DisPlayContent(kvp.Value.ToString()))); } else { sb.Append(string.Format("{0}\"{1}\":\"{2}\",\n", tabString, kvp.Key, DisPlayContent(kvp.Value.ToString()))); } } } if (sb.Length > 2) { sb.Remove(sb.Length - 2, 2); } sb.Append("\n"); sb.Append(tabString.Substring(0, tabString.LastIndexOf('\t'))); sb.Append("}"); TabLevel--; return(sb.ToString()); }
private static string GetArrayString(List <object> jsonArray) { StringBuilder sb = new StringBuilder(); sb.Append("["); for (int i = 0; i < jsonArray.Count; i++) { LKJsonObj dirObj = jsonArray[i] as LKJsonObj; if (dirObj == null) { sb.Append(string.Format("\"{0}\",", DisPlayContent(jsonArray[i].ToString()))); } else if (dirObj.GetDataType() == typeof(Dictionary <string, object>)) { isFromArray = true; sb.Append(string.Format("{0},", GetString(dirObj))); isFromArray = false; } else if (dirObj.GetDataType() == typeof(List <object>)) { sb.Append(string.Format("{0},", GetArrayString(dirObj.GetListObject()))); } else if (dirObj.GetDataType() == typeof(string)) { sb.Append(string.Format("\"{0}\",", DisPlayContent(dirObj.ToString()))); } else { sb.Append(string.Format("\"{0}\",", DisPlayContent(jsonArray[i].ToString()))); } } if (sb.Length > 1) { sb.Remove(sb.Length - 1, 1); } sb.Append("]"); return(sb.ToString()); }