C# 将json数组转换为datatable asp.net

C# 将json数组转换为datatable asp.net,c#,asp.net,json,vb.net,json.net,C#,Asp.net,Json,Vb.net,Json.net,拜托,我对json很陌生。我有一个传递值的url,返回的数据是json格式的。我需要从这个url反序列化json,然后将其绑定到asp.net中的列表视图控件。这就是json数据的样子 {"records":[{"record":{"Ch_ID":"27","User_id":"1","Ch_Name":"test1","Ch_Description":"test1description","Ch_Starttime":""}},{"record":{"Ch_ID":"29","User_

拜托,我对json很陌生。我有一个传递值的url,返回的数据是json格式的。我需要从这个url反序列化json,然后将其绑定到asp.net中的列表视图控件。这就是json数据的样子

   {"records":[{"record":{"Ch_ID":"27","User_id":"1","Ch_Name":"test1","Ch_Description":"test1description","Ch_Starttime":""}},{"record":{"Ch_ID":"29","User_id":"1","Ch_Name":"w","Ch_Description":"ww","Ch_Starttime":"12"}},{"record":{"Ch_ID":"30","User_id":"1","Ch_Name":"qq","Ch_Description":"qqqdescription","Ch_Starttime":"1222"}},{"record":{"Ch_ID":"31","User_id":"1","Ch_Name":"v","Ch_Description":"vv","Ch_Starttime":"1"}},{"record":{"Ch_ID":"32","User_id":"1","Ch_Name":"n","Ch_Description":"nnnn","Ch_Starttime":"111"}}]} 

有人知道我该怎么做吗。我已经试用过json.net,但它给我带来了错误。

json.net确实支持通过其内置程序对
数据表进行反序列化,但是它希望json被格式化为数组,如下所示:

[
  {
    "Ch_ID": "27",
    "User_id": "1",
    // Other fields
  },
  {
    "Ch_ID": "29",
    "User_id": "1",
    // Other fields
  },
  // Other records
]
{
  "records": [
    {
      "record": {
        "Ch_ID": "27",
        "User_id": "1",
        // Other fields
      }
    },
    {
      "record": {
        "Ch_ID": "29",
        "User_id": "1",
        // Other fields
      }
    },
    // Other records
  ]
}
var json = GetJson();

var settings = new JsonSerializerSettings
{
    Converters = new[] { new RecordDataTableConverter() },
};

var table = JsonConvert.DeserializeObject<DataTable>(json, settings);
您的JSON格式如下所示:

[
  {
    "Ch_ID": "27",
    "User_id": "1",
    // Other fields
  },
  {
    "Ch_ID": "29",
    "User_id": "1",
    // Other fields
  },
  // Other records
]
{
  "records": [
    {
      "record": {
        "Ch_ID": "27",
        "User_id": "1",
        // Other fields
      }
    },
    {
      "record": {
        "Ch_ID": "29",
        "User_id": "1",
        // Other fields
      }
    },
    // Other records
  ]
}
var json = GetJson();

var settings = new JsonSerializerSettings
{
    Converters = new[] { new RecordDataTableConverter() },
};

var table = JsonConvert.DeserializeObject<DataTable>(json, settings);
您可以使用以下命令将实际JSON转换为JSON.NET所需的格式:

并按如下方式使用:

[
  {
    "Ch_ID": "27",
    "User_id": "1",
    // Other fields
  },
  {
    "Ch_ID": "29",
    "User_id": "1",
    // Other fields
  },
  // Other records
]
{
  "records": [
    {
      "record": {
        "Ch_ID": "27",
        "User_id": "1",
        // Other fields
      }
    },
    {
      "record": {
        "Ch_ID": "29",
        "User_id": "1",
        // Other fields
      }
    },
    // Other records
  ]
}
var json = GetJson();

var settings = new JsonSerializerSettings
{
    Converters = new[] { new RecordDataTableConverter() },
};

var table = JsonConvert.DeserializeObject<DataTable>(json, settings);
var json=GetJson();
var设置=新的JsonSerializerSettings
{
Converters=new[]{new RecordDataTableConverter()},
};
var table=JsonConvert.DeserializeObject(json,设置);

示例。

这是一个错误,我无法将当前JSON对象(例如{“名称”:“值”})反序列化为“wireframes.wcodes[]”类型,因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。欢迎使用Stackoverflow。请用反序列化时使用的C#更新您的问题。请包含导致错误的代码。非常感谢,我刚刚尝试了这个,我得到了这个错误:读取DataTable时意外的JSON令牌。期待星光,得到星光。路径“”,第1行,位置1。@StanleyEkpunobi-我用您提供的json测试了它,它运行正常。看。如果这不是您真正的JSON,或者您没有使用答案中所示的转换器进行反序列化,那么请提供一个复制问题的示例。好的,它现在工作正常,非常感谢。它正在将其转换为实际的json格式。那么,如何将其反序列化为字符串或任何可以绑定到控件的数据类型。@StanleyEkpunobi-至于将
数据表
绑定到asp.net中的列表视图,您可以试试。