将JArray对象转换为动态ExpandoObjects列表的最佳方法

时间:2016-03-13 10:34:01

标签: c# dynamic expandoobject

我们的angularjs spa正在向我们的后端发送动态对象列表。我已经读过,接收这样一个列表的最好方法是使用JArray。由于我们的业务层是为了接收我需要转换数组的动态对象列表而构建的。

出于这个原因,我想知道将JArray对象转换为动态List的最快捷方式是什么。这是我到目前为止所提出的,使用我打算在需要的地方使用的一种表现。

这有效,但我不确定当数组包含许多对象时它是否有效?

    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;
    } 

1 个答案:

答案 0 :(得分:0)

同样,在这里,我使用标准方法给我JArrays。有时我想根据自己的工作将其转换为动态。这就是我所做的。

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