コード例 #1
0
ファイル: VkClass.cs プロジェクト: Itua-Juele/VkApi
        /// <summary>
        /// Возвращает список из значений, если ответ сервера имел вид
        /// {.. "count":число, "name_key":[{..},{..}, .. , {..}]}
        /// или {.."name_key":[число,{..},{..}, .. , {..}]}
        /// </summary>
        /// <param name="key">Имя ключа</param>
        /// <param name="dataJson">ответ сервера</param>
        /// <returns></returns>
        internal static Dictionary <string, string>[] A_ListInKey(string key, string dataJson)
        {
            int pos_key = VkJson.SearchKey(key, dataJson);

            Dictionary <string, string>[] data;
            if (pos_key != -1)
            {
                int[]  set   = VkJson.GetSettingsList(pos_key - 1, dataJson);
                string count = "";
                pos_key = VkJson.SearchKey("count", dataJson);
                if (pos_key != -1)
                {
                    count    = VkJson.GetValueDictionary("count", dataJson);
                    dataJson = dataJson.Substring(set[0], set[1]);
                }
                else
                {
                    dataJson = dataJson.Substring(set[0], set[1]);
                    foreach (char x in dataJson)
                    {
                        if (x == ',')
                        {
                            dataJson = "[" + dataJson.Substring(count.Length + 1);
                            count    = count.Substring(1);
                            break;
                        }
                        count += x;
                    }
                }
                char s = dataJson[1];
                if (s == '{')
                {
                    string[] users = VkJson.ListDictionary(dataJson);
                    data = new Dictionary <string, string> [1 + users.Length];
                    for (int i = 0; i < users.Length; i++)
                    {
                        VkJson.FillDictionary(ref data[i + 1], users[i]);
                    }
                }
                else
                {
                    data    = new Dictionary <string, string> [2];
                    data[1] = new Dictionary <string, string>();
                    data[1].Add("items", dataJson);
                }

                data[0] = new Dictionary <string, string>();
                data[0].Add("count", count);
                return(data);
            }
            else
            {
                data = new Dictionary <string, string>[1] {
                    VkJson.ResponseError(dataJson)
                };
                return(data);
            }
        }
コード例 #2
0
ファイル: VkClass.cs プロジェクト: Itua-Juele/VkApi
 /// <summary>
 /// Возвращает список из значений, если ответ сервера имел вид
 /// {"name_key":[{..},{..}, .. , {..}]}
 /// </summary>
 /// <param name="key">имя ключа в котором лежит список</param>
 /// <param name="dataJson">ответ сервера</param>
 /// <returns></returns>
 internal static Dictionary <string, string>[] A_ListValues(string key, string dataJson)
 {
     Dictionary <string, string>[] data;
     if (dataJson.Substring(2, 5) == "error")
     {
         data = new Dictionary <string, string>[1] {
             VkJson.ResponseError(dataJson)
         };
     }
     else
     {
         dataJson = VkJson.GetListDictionary(key, dataJson);
         string[] response = VkJson.ListDictionary(dataJson);
         data = new Dictionary <string, string> [response.Length];
         for (int i = 0; i < response.Length; i++)
         {
             VkJson.FillDictionary(ref data[i], response[i], "");
         }
     }
     return(data);
 }