我已将我的JSON字符串反序列化并转换为对象。
我想知道如何将所有这些数据放入<<<
?
我已经搜索了论坛,但无法找到合适的答案。这就是我所拥有的:
JSON:
DataGridView
类:
{
"name":"default",
"ramps":[
{
"color":"deep_red",
"points": [
{"time":0,"intensity":0},
{"time":360,"intensity":0},
/* MANY OTHER POINTS */
{"time":1290,"intensity":0}
]
},
{
"color":"uv",
"points":[
{"time":0,"intensity":0},
/* MANY OTHER POINTS */
{"time":1290,"intensity":0}
]
},
{
"color":"deep_blue",
"points":[
{"time":0,"intensity":0},
/* MANY OTHER POINTS */
{"time":1320,"intensity":0}
]
},
/* MANY OTHER COLORS */
],
"response_code":0
}
C#代码:
public class Prime
{
public string name { get; set; }
public ramps[] ramps { get; set; }
public int response_code { get; set; }
}
public class ramps
{
public string color { get; set; }
public points[] points { get; set; }
}
public class points
{
public int time { get;set;}
public int intensity { get; set;}
}
不幸的是,上面的代码并没有用任何数据填充if (response2.StatusCode == HttpStatusCode.OK)
{
var arr = JsonConvert.DeserializeObject<Prime>(responseFromServer);
Dg_View.DataSource = arr;
}
(DataGridView
)。调试Dg_View
我可以看到正确格式的所有JSON。
我希望arr
成为行名称,其中color
为列标题,每个框中的值为time
。
答案 0 :(得分:0)
Prime
对象(在上面的代码中称为arr
)将包含多个Ramps
个对象,因此,似乎每个对象都会有一个网格“斜坡”对象。此网格将有一列显示每个Ramps
对象的不同“颜色”。
由于每个Ramps
对象可能包含多个Points
个对象,因此可以使用另一个网格为每个{{1}显示不同的time
和intensity
Points
在第一个网格中选择1}}。
下图说明了上述方法。左侧的网格显示每个color
个对象的不同'颜色属性。右侧的网格显示左侧网格中当前所选行的Ramps
个对象的不同time
和intensity
属性。
如果用户在左侧的网格中选择了不同的“颜色”,则右侧的网格将更新以反映选择的Points
s color
。
以下代码使用Points
类型的全局变量PrimeObject
。它包含Prime
Ramps
事件可见的所有数据,以便使用SelectionChanged
网格中的所选颜色更新Points
网格。当选择在Ramps
网格中更改时,将检查有效的选定单元格,然后获取所选单元格行索引以确定在Ramps
网格中显示哪个Points
。
Points
希望这有帮助。