反序列化JSON数组以列出

时间:2018-08-03 19:05:49

标签: c# .net json json.net

我尝试了可用的解决方案,但仍然无法打印列表 这是我的JSON

var result = [
    {
        "id": 1409636
    },
    {
        "id": 1499272
    },
    {
        "id": 1409587
    },
    {
        "id": 1409588
    },
    {
        "id": 1409589
    }
]

这是我的代码

public class stgmd
{
    public Int64 id { get; set; }
}

List<stgmd> resultlist = JsonConvert.DeserializeObject<List<stgmd>>(result);


foreach (var results in resultlist)
{
    Console.WriteLine(results);
}
Console.ReadKey();

建议?

2 个答案:

答案 0 :(得分:2)

stageid和id不匹配。您要么需要做:

public class stgmd
{
    public Int64 id { get; set; }
}

public class stgmd
{
    [JsonProperty("id")]
    public Int64 stageid { get; set; }
}

根据您的评论进行编辑:

如果您的JSON确实以var result=开头,那是错误的。您的JSON应该是包含类似

的字符串
[
 {
    "id": 1409636
},
{
    "id": 1499272
 },
 {
    "id": 1409587
 },
 {
    "id": 1409588
 },
 {
    "id": 1409589
 }
]

仅此而已。

答案 1 :(得分:2)

您需要通过JsonProperty为属性指定json名称:

[JsonProperty("id")]
public int stageid { get; set; }