Member 13053943 Ответов: 1

Преобразование массива в объект в ASP MVC API


я хочу использовать stringbuilder для преобразования объекта в массив в моем api, но я этого не понимаю.
я знаю, что массив - это [], а объект - {}.пожалуйста, помогите мне с запросом и stringbuilder. thank you

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

это контроллер api

public ApiResult<List<Event>> GetUpcomingEvents()
        {
            EventMasterDb repo = new EventMasterDb();
            var result = new ApiResult<List<Event>>();
            try
            {
                StringBuilder  query = new StringBuilder();

                var list = repo.Fetch<Event>(query.ToString());
                result.Successfull = 1;
                result.Model = list;
            }
            catch (Exception ex)
            {
                result.Successfull = 0;
                result.InternalError = ex.Message;
                result.Error = "Error from server";
            }
            finally
            {
                repo.Dispose();
            }

            return result;

        }


это результаты api, его в фигурных скобках, что тип объекта

{"EventId":2,"EventName":"Vodafone Ghana Videos Awards","Description":"Awards for music videos in Ghana","MerchantId":1,"VenueId":2,"VenueName":"Accra International Conference Center","Latitude":null,"Longitude":null,"Thumbnail":null,"CoverImage":null,"VideoUrl":null,"Url":null,"AddedDate":"2017-06-08T00:00:00","PublishedDate":"2017-06-10T00:00:00","EventDate":"2017-06-15T00:00:00"}]}

F-ES Sitecore

Google "десериализует json c#" - есть масса примеров того, как это сделать.

1 Ответов

Рейтинг:
1

Afzaal Ahmad Zeeshan

Технически ваша потребность неясна и очень неоднозначна. Зачем вообще нужно это делать? Как можно преобразовать объект в массив?

Одним из простых способов было бы примите объект, создайте массив, добавьте этот объект в массив, и сериализовать массив. Я имею в виду, что это очень сюрреалистический сценарий, в котором вы должны были бы сделать это. Существует несколько способов, которыми вы можете это сделать, например, сервер или клиент могут искать ответ массива. Но, тем не менее, это не очень хороший подход, вам нужно переосмыслить свой протокол API, глагол и совместное использование ресурсов.

Ваш код показывает хороший пример того, как это сделать, я вижу, что у вас уже есть список вашей коллекции там, в repo объект.

public List<Event> GetUpcomingEvents()
{
   EventMasterDb repo = new EventMasterDb();
   StringBuilder  query = new StringBuilder();
   // Missed the query? 
   var list = repo.Fetch<List<Event>>(query.ToString()); 
   // Fetch List<Event> instead of Event

   // You already have a list, return it!
   return list;
}

Еще одна вещь, API не требует от вас использования оболочек MVC, таких как ActionResults и т. д., Вам просто нужно вернуть свои собственные пользовательские типы или контейнеры (List прием). ASP.NET Web API автоматически сопоставит их с тем, что вам нужно, в формате JSON или XML.