C# 如何创建json数据列表<;T>;显示dataGridView

C# 如何创建json数据列表<;T>;显示dataGridView,c#,json,list,object,datagridview,C#,Json,List,Object,Datagridview,我正在使用Newtonsoft库解析JSON: using Newtonsoft.Json; using Newtonsoft.Json.Linq; 我有我的json字符串和“MyClass”类 JSON字符串: { "Result": { "MyClassList": [ {"Id":1,"Amount":"5,00"},

我正在使用
Newtonsoft
库解析JSON:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
我有我的json字符串和“MyClass”类

JSON字符串:

{
    "Result":    
            {    
              "MyClassList": [    
                                 {"Id":1,"Amount":"5,00"},    
                                 {"Id":2,"Amount":"10,00"},                                 
                                 {"Id":3,"Amount":"20,00"},    
                                 {"Id":4,"Amount":"25,00"}      
                             ]     
              "ReturnValues":           
                             {
                              "ErrorCode":1,
                              "ErrorDescription":"Successful"
                             }
            } 
}
我的班级:

public class MyClass
{
    [JsonProperty("Id")]
    Int64 Id { get; set; }

    [JsonProperty("Amount ")]
    string Amount { get; set; }
}
我使用这些类“GetMyClassList”、“RootObject”和“ReturnValues”获取json数据

List GetMyClassList()
{
JObject jo=新的JObject();
List myClassList=新列表();
jo.添加(“名称”、“名称”);
添加(“姓氏”、“姓氏”);
url=“MyUrl”;
字符串responseText=ExecuteHttpRequest(url,“POST”,
“application/json”,Encoding.UTF8.GetBytes(jo.ToString()),3000;

myClassList=JsonConvert.DeserializeObject(responseText) .GetMyClassListResult.MyClassList; 返回myClassList; } 公共阶级价值观 { 公共int错误代码{get;set;} 公共字符串ErrorDescription{get;set;} } 公共类GetMyClassListResult { [JsonProperty(“MyClassList”)] 公共列表MyClassList{get;set;} public ReturnValues ReturnValues{get;set;} } 公共类根对象 { 公共GetMyClassListResult GetMyClassListResult{get;set;} }
我无法获取此数据数组(Id和金额)。
我想获取这些数据并在dataGridView中显示。

t-shot的最佳方法是在行中设置断点,在那里你可以从方法->中获得结果,它是否已填充?这一行:

return myClassList;
我已经用单次调整运行了您的代码->我刚刚使用了下面的直接JSON(不是来自web)-代码。这次运行没有问题,我可以看到从JSON解析出来的所有结果

您必须找出问题是在JSON中,还是将数据设置为DataGridTable(您根本没有包含这些代码)

类程序
{
静态void Main(字符串[]参数)
{
var result=new Program().GetMyClassList();
foreach(结果中的var项目)
WriteLine($“ID:{item.ID}\tAmount:{item.Amount}”);
Console.ReadKey();
}
公共列表GetMyClassList()
{
List myClassList=新列表();
字符串响应文本=“{\'GetMyClassListResult\”:{\'MyClassList\”:[{\'Id\':1,\'Amount\':\'5,00\',{\'Id\':2,\'Amount\':\'10,00\',{\'Id\':3,\'Amount\':\'20,00\',{\'Id\'4,\'Amount\':'25,00\',\'ReturnValues\':{'ErrorCode 1,\'ErrorDescription\':'Successful};

myClassList=JsonConvert.DeserializeObject(responseText) .GetMyClassListResult.MyClassList; 返回myClassList; } } 公共类MyClass { [JsonProperty(“Id”)] 公共Int64 Id{get;set;} [JsonProperty(“金额”)] 公共字符串金额{get;set;} } 公共阶级价值观 { 公共int错误代码{get;set;} 公共字符串ErrorDescription{get;set;} } 公共类GetMyClassListResult { [JsonProperty(“MyClassList”)] 公共列表MyClassList{get;set;} public ReturnValues ReturnValues{get;set;} } 公共类根对象 { 公共GetMyClassListResult GetMyClassListResult{get;set;} }
我刚刚将JSON粘贴到在线编译器中,数组后面缺少逗号“,”->这是web上的错误还是从web api返回的错误?JSON数据是常规数据。我可以在dataGridView中显示“MyClassList”和“ReturnValues”,但我想在dataGridView中看到“Id”:1和“Amount”:“5,00”。另外,
[JsonProperty(“Amount”)]
在AmountCorrect之后有空格,我在这里写的。MyClassList=JsonConvert.DeserializeObject(responseText)。GetMyClassListResult.MyClassList;这行有错误。错误:其他信息:对象引用未设置为对象的实例。
return myClassList;
class Program
{
    static void Main(string[] args)
    {

        var result = new Program().GetMyClassList();

        foreach (var item in result)
            Console.WriteLine($"ID: {item.Id}\tAmount:{item.Amount}");

        Console.ReadKey();
    }

    public List<MyClass> GetMyClassList()
    {
        List<MyClass> myClassList = new List<MyClass>();

        string responseText = "{\"GetMyClassListResult\":{\"MyClassList\":[{\"Id\":1,\"Amount\":\"5,00\"},{\"Id\":2,\"Amount\":\"10,00\"},{\"Id\":3,\"Amount\":\"20,00\"},{\"Id\":4,\"Amount\":\"25,00\"}],\"ReturnValues\":{\"ErrorCode\":1,\"ErrorDescription\":\"Successful\"}}}";

        myClassList = JsonConvert.DeserializeObject<RootObject>(responseText)
                       .GetMyClassListResult.MyClassList;

        return myClassList;
    }
}

public class MyClass
{
    [JsonProperty("Id")]
    public Int64 Id { get; set; }

    [JsonProperty("Amount")]
    public string Amount { get; set; }
}

public class ReturnValues
{
    public int ErrorCode { get; set; }
    public string ErrorDescription { get; set; }
}

public class GetMyClassListResult
{
    [JsonProperty("MyClassList")]
    public List<MyClass> MyClassList { get; set; }
    public ReturnValues ReturnValues { get; set; }
}

public class RootObject
{
    public GetMyClassListResult GetMyClassListResult { get; set; }
}