C#从JSON响应创建Deedle数据帧

C#从JSON响应创建Deedle数据帧,c#,.net,json,dataframe,deedle,C#,.net,Json,Dataframe,Deedle,我在将此请求的JSON响应加载到Deedle数据帧时遇到了一些问题: 在JSON中,我感兴趣的是特性。更具体地说,对于每个特性都有属性——我只希望将这些属性的集合加载到数据帧中。在这个特定的例子中,只有一个属性“name”,所以我的期望是结果数据帧将有一个列“name”,其中包含所示的值 我尝试过使用json2csharp并创建自己的类,但结果要么没有列标题/值,要么缺少值。我真的不确定我做错了什么,或者我是否以正确的方式来处理这件事。我从Deedle文档中了解到,应该可以从对象集合中创建数据帧

我在将此请求的JSON响应加载到Deedle数据帧时遇到了一些问题:

在JSON中,我感兴趣的是特性。更具体地说,对于每个特性都有属性——我只希望将这些属性的集合加载到数据帧中。在这个特定的例子中,只有一个属性“name”,所以我的期望是结果数据帧将有一个列“name”,其中包含所示的值

我尝试过使用json2csharp并创建自己的类,但结果要么没有列标题/值,要么缺少值。我真的不确定我做错了什么,或者我是否以正确的方式来处理这件事。我从Deedle文档中了解到,应该可以从对象集合中创建数据帧:。当然,使用页面上列出的可枚举示例可以如期工作

以下是我的代码的相关部分:


如有任何帮助/建议,将不胜感激

Frame.FromRecords操作依赖于静态类型信息来确定类的属性。在您的例子中,您将对象列表定义为
list
——它被编译为
Object
,因此Deedle看不到任何成员

要解决此问题,只需将类型定义为
myClass
对象列表:

var testObjList = new List<myClass>();
var testObjList=newlist();
使用匿名类型的更紧凑方法也可以:

var testObjList =       
  ((IEnumerable<dynamic>)x.features).Select(element => 
    new { name = element.attributes.name });
var dfObjects = Frame.FromRecords(testObjList);
var testObjList=
((IEnumerable)x.features)。选择(元素=>
新的{name=element.attributes.name});
var dfObjects=Frame.FromRecords(testObjList);

啊,是的!壮观的现在很明显发生了什么。非常感谢你的帮助!
var testObjList = new List<myClass>();
var testObjList =       
  ((IEnumerable<dynamic>)x.features).Select(element => 
    new { name = element.attributes.name });
var dfObjects = Frame.FromRecords(testObjList);