JsonConvert对象到datagridview c#

时间:2017-05-22 11:33:54

标签: c# json datagridview

我已将我的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

1 个答案:

答案 0 :(得分:0)

Prime对象(在上面的代码中称为arr)将包含多个Ramps个对象,因此,似乎每个对象都会有一个网格“斜坡”对象。此网格将有一列显示每个Ramps对象的不同“颜色”。 由于每个Ramps对象可能包含多个Points个对象,因此可以使用另一个网格为每个{{1}显示不同的timeintensity Points在第一个网格中选择1}}。

下图说明了上述方法。左侧的网格显示每个color个对象的不同'颜色属性。右侧的网格显示左侧网格中当前所选行的Ramps个对象的不同timeintensity属性。

如果用户在左侧的网格中选择了不同的“颜色”,则右侧的网格将更新以反映选择的Points s color

enter image description here

以下代码使用Points类型的全局变量PrimeObject。它包含Prime Ramps事件可见的所有数据,以便使用SelectionChanged网格中的所选颜色更新Points网格。当选择在Ramps网格中更改时,将检查有效的选定单元格,然后获取所选单元格行索引以确定在Ramps网格中显示哪个Points

Points

希望这有帮助。