Лучший способ преобразовать объект JArray в список динамических ExpandoObjects

Наш спа-центр angularjs отправляет список динамических объектов на наш сервер. Я читал, что лучший способ получить такой список — использовать JArray. Поскольку наш бизнес-уровень создан для получения списка динамических объектов, мне нужно преобразовать массив.

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

Это работает, но я не уверен, что это эффективно, когда массив содержит много объектов?

    public static IList<dynamic> ToDynamicList(this JArray data)
    {
        var dynamicData = new List<dynamic>();
        var expConverter = new ExpandoObjectConverter();

        foreach (var dataItem in data)
        {
            dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(dataItem.ToString(), expConverter);
            dynamicData.Add(obj);
        }
        return dynamicData;
    } 

person JohanLarsson    schedule 13.03.2016    source источник


Ответы (1)


Здесь же я использую стандартные методы, которые дают мне JArrays. Иногда я хочу преобразовать их в динамику в зависимости от того, что я делаю. Вот что я сделал.

//JArray data
List<dynamic> dlist = data.Select(d => (dynamic)d).ToList();
person Jordan    schedule 22.02.2019