Member 13677196 Ответов: 2

Как вернуть данные jobject.как преобразовать строку в jobject


JObject allJsonData = new JObject();
            var tempData = CallRestApi(url, "GET", conn.sessionID, conn.xApiVersionString);
            var dictKeys = tempData.Properties().Select(p => p.Name).ToList();
            if (dictKeys.Contains("total") && dictKeys.Contains("count"))
            {
                var tempDataTotal = Int32.Parse(tempData["total"].ToString());
                var tempDataCount = Int32.Parse(tempData["count"].ToString());
                if (tempDataTotal == tempDataCount)
                    return tempData;
                List<jtoken> dictDataList = new List<jtoken>();
                foreach (var eachDict in tempData["members"])
                    dictDataList.Add(eachDict);
                var perPageCount = (tempDataCount < tempDataTotal) ? tempDataCount : tempDataTotal;
                int loopCount = (int)Math.Ceiling((double)tempDataTotal / (double)tempDataCount);
                allJsonData = tempData;
                var membersData = "";
                for (int i = 1; i < loopCount; i++)
                {
                    var tempMembers = CallRestApi(url + "?start=" + (i * perPageCount).ToString() + "&count=" + perPageCount.ToString(), "GET",
                        conn.sessionID, conn.xApiVersionString)["members"];
                    foreach (var myDict in tempMembers)
                        dictDataList.Add(myDict);
                    membersData = (allJsonData["members"].ToString() + ", " + tempMembers.ToString()).ToString();
                }
                allJsonData["count"] = tempDataCount;
                return membersData;


Что я уже пробовал:

выдача ошибки в membersdata-
cannot implicitly convert type string to newtonsoft.json.linq.jobject.An explicit conversion exists(Are you missing a cast?)
-с#

2 Ответов

Рейтинг:
2

Wendelius

Член 13677196 написал:
выдача ошибки в membersdata-

Если исключение исходит из переменной membersData, как вы написали, то единственное место в предоставленном вами коде, где переменная преобразуется во что-то другое, - это возвращаемое sstatement:
return membersData;

Проверьте объявление метода, каким должен быть тип возвращаемого значения из метода.


Рейтинг:
0

Christiaan van Bergen

Вы получаете результат строки JSON обратно из вашего вызова API, это все еще строка. Поэтому вы не можете напрямую установить переменную JObject со строкой.

JObject allJsonData = new JObject();
string tempData = CallRestApi(url, "GET", conn.sessionID, conn.xApiVersionString);
allJsonData = tempData; // this is giving you the error
Вам придется использовать функцию синтаксического анализа.
allJsonData = JObject.Parse(tempData);