C# 反序列化到数据集时,JsonConvert.DeserializeObject不工作

C# 反序列化到数据集时,JsonConvert.DeserializeObject不工作,c#,asp.net,json,json.net,C#,Asp.net,Json,Json.net,我试图将JSON字符串转换为数据集,但它抛出了一个错误: 读取数据表时出现意外的JSON标记。期待星光,得到星光。路径“数据”,第1行,位置9 从DataSet DataSet=(DataSet)JsonConvert.DeserializeObject(json,(typeof(DataSet)))行 来自服务器的JSON响应看起来不错;这是我的密码: public void GlobalApiCall(string API_Name, string postData) { Conne

我试图将JSON字符串转换为数据集,但它抛出了一个错误:

读取数据表时出现意外的JSON标记。期待星光,得到星光。路径“数据”,第1行,位置9

DataSet DataSet=(DataSet)JsonConvert.DeserializeObject(json,(typeof(DataSet)))

来自服务器的JSON响应看起来不错;这是我的密码:

public void GlobalApiCall(string API_Name, string postData)
{
    ConnectionClass t1 = new ConnectionClass();
    var link = ConfigurationManager.AppSettings["ReportUrl"];

    var request1 = (HttpWebRequest)WebRequest.Create(link + API_Name);
    var data1 = Encoding.ASCII.GetBytes(postData);

    request1.Method = "POST";
    request1.ContentType = "application/x-www-form-urlencoded";
    request1.ContentLength = data1.Length;

    using (var stream = request1.GetRequestStream())
    {
        stream.Write(data1, 0, data1.Length);
    }

    var response1 = (HttpWebResponse)request1.GetResponse();

    var responseString1 = new StreamReader(response1.GetResponseStream()).ReadToEnd();
    String json = responseString1.Replace("\"", "'");
    DataSet dataSet = (DataSet)JsonConvert.DeserializeObject(json, (typeof(DataSet)));
}
我的JSON回应是:

{
  "data": {
    "Table": [
      {
        "FirmId": 67,
        "FirmName": "FURNITURE ELECTRONICS & HOME APPLIANCES ",
        "BranchId": 44317,
        "BranchName": " PERINTHALMANNA",
        "Address": "PERINTHALMANNA",
        "Contact": "123456",
        "HelpLine": "454656",
        "MailId": "qwerty@GMAIL.COM",
        "GSTINNo": "wewrerw",
        "BranchRegNo": "08/2019",
        "PAN": "rwerewr",
        "OtherNotes": "",
        "State": "KERALA",
        "StateCode": "32",
        "Delivery": "Y"
      }
    ]
  }
}

我找不到问题所在。我应该从哪里开始查找?

您会遇到此错误,因为JSON的格式不是反序列化程序希望转换为
数据集的格式。特别是,数据集数据似乎包装在外部对象中。请尝试像这样反序列化JSON:

DataSet dataSet = JObject.Parse(json)["data"].ToObject<DataSet>();
DataSet DataSet=JObject.Parse(json)[“data”].ToObject();

小提琴:

请参考
“数据”
键从何而来?数据集位于绑定到该键的对象内,您需要将json反序列化为数据属性类型为dataset的根对象;很高兴我能帮忙。