反序列化Json错误

时间:2014-03-15 11:37:44

标签: c# .net json deserialization

我有以下代码:

public string BulkAttendaceSave(string userName, string password, string Json)
{
    DataSet ds = (DataSet)JsonConvert.DeserializeObject(Json, (typeof(DataSet)));
}

我传递的JSon是:

[{"staff_id":"12","site_code":"S2","att_date":"1-7-2013","work_hour":"1.00"}]

我收到错误:

  

Newtonsoft.Json.JsonSerializationException:完成反序列化对象后在JSON字符串中找到的附加文本。      at attendence.BulkAttendaceSave(String userName,String password,String Json)

代码有什么问题?请帮忙!

1 个答案:

答案 0 :(得分:0)

您的json字符串格式不正确,无法解析为DataSet。它应该是内部表格的对象。每个表应包含行数组:

{ 
   "Table1": [
     {"staff_id":"12","site_code":"S2","att_date":"1-7-2013","work_hour":"1.00"}
   ]
}

现在可以将其反序列化为DataSet。您当前的json字符串可以反序列化为DataTable

var dt = (DataTable)JsonConvert.DeserializeObject(json, typeof(DataTable));

结果:

enter image description here