从JSON数组填充DataGridView
我有一个产品数组的JSON,我想以列表形式加载到我的C#程序中,最终将其显示在DataGridView中。从JSON数组填充DataGridView
JSON:
{
"products":[
{
"name":"game",
"url":"website 1",
"cash_price":"£20.00",
"category":"Playstation 4 Game"
},
{
"name":"tv",
"url":"website 2",
"cash_price":"£200.00",
"category":"electronics"
}
]
}
产品类
class Product
{
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("url")]
public string url { get; set; }
[JsonProperty("cash_price")]
public string cash_price { get; set; }
[JsonProperty("category")]
public string category { get; set; }
[JsonProperty("url")]
public string url { get; set; }
public static IList<Product> products = new List<Product>();
}
我运行此代码:
string input = File.ReadAllText(openFileDialog1.FileName);
var results = JsonConvert.DeserializeObject(input);
dataGridView1.DataSource = Product.products;
但在DataGridView,所有我显示的是一个空白格与标题名称,网址,cash_price和类别。网格内没有实际的条目。
我在做什么错?
感谢反序列化一样JsonConvert.DeserializeObject<Product>
当你
提供的产品类型。
class ProductList
{
public List<Product> products { get; set; }
}
var result = JsonConvert.DeserializeObject<ProductList>(input);
dataGridView1.DataSource = result.products;
你也许可以跳过当属性名的JSON名称完全匹配JsonPropertyAttribute
秒 - 这在您的示例中的情况。
感谢您的快速响应。然而,我尝试这样做(添加类等),但现在数据网格视图是完全空白的。标题不再显示,只是一个空白的灰色框。我知道我可能在某个地方犯了一个愚蠢的错误,但我一直在摆弄这个2小时,我不知道该怎么做啊哈 –
我忘了做'列表
嗯我更新了我的代码,但我仍然无法得到任何东西显示,我不明白为什么,有什么办法我可以喜欢join.me你我的屏幕或东西? –
请不要张贴链接到图像,只是写你得到一个空的网格。此外,请将此标记为WinForms问题。 – dnickless
@dnickless啊对不起,现在全部更新 –
在设置DataSource之前,它看起来并不像是将'Product.products'属性设置为任何东西。 JsonConvert不会为您设置该静态属性 –