コード例 #1
0
    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());
    }
コード例 #2
0
    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());
    }
コード例 #3
0
 public static string SerializeJson(LKJsonObj jsonObject)
 {
     TabLevel    = 0;
     isFromArray = false;
     return(GetString(jsonObject));
 }