Я использую REST API для получения JSON.Владелец ввел ограничение в 50 результатов.Может кто-нибудь предложить какие-либо ссылки / учебные пособия о том, как я могу получить все записи и затем derserialisze их в список?
Я использую RestSharp & C #
Со времени публикации этого вопроса вчера я пыталсяработать через решение, которое создает новый метод, который может использоваться во всех вызовах REST.Вот что у меня есть:
public T getAllRecords<T>(List<T> genericList, string RestCommand, string[,] parameters)
{
int pageCount = 50;
var client = new RestClient("https://******************************");
client.Authenticator = new HttpBasicAuthenticator("*******", "*******");
var request = new RestRequest(RestCommand, Method.GET);
// add the parameters
for (int i = 0; i < parameters.Length / 2; i++)
{
request.AddParameter(parameters[i, 0], parameters[i, 1]);
}
var response = client.Execute(request);
var content = response.Content;
if (typeof(T) == typeof(Rootobject))
{
List<Rootobject> tempObject = new List<Rootobject>();
tempObject.Cast<Rootobject>();
Rootobject myRel = JsonConvert.DeserializeObject<Rootobject>(content);
tempObject.Add(myRel);
// create logic for looping through remaining records
int totalRecords = myRel.meta.pageInfo.totalResults;
do
{
request.AddParameter("startAt", pageCount);
response = client.Execute(request);
content = response.Content;
Rootobject myRel1 = JsonConvert.DeserializeObject<Rootobject>(content);
tempObject.Add(myRel1);
pageCount += 50;
} while (pageCount <= totalRecords);
List<Item.Datum> totalList = new List<Item.Datum>();
foreach (Rootobject rootItem in tempObject)
{
foreach (Item.Datum item in rootItem.data)
{
totalList.Add(item);
}
}
return (T)Convert.ChangeType(totalList, typeof(Item.Datum));
}
return default(T);
}
Я называю это так:
var allItems = getAllRecords(new List<Rootobject>(), "abstractitems", new string[,] { { "project", "001" }, { "itemType", "151" }, { "maxResults", "50" } });
Я ожидал, что он перенастроит список объектов типа Item.Datum , однако он выдает ошибку:
System.InvalidCastException: «Объект должен реализовывать IConvertible.»
Я почти достиг предела моего текущего понимания, оцените любые указатели относительнокак пройти через финишную черту.
Спасибо.