private void ExmpDatasave()
{
DataSet dataSet = new DataSet("dataSet");
dataSet.Namespace = "NetFrameWork";
DataTable table = new DataTable();
DataColumn idColumn = new DataColumn("id", typeof(int));
idColumn.AutoIncrement = true;
DataColumn itemColumn = new DataColumn("item");
table.Columns.Add(idColumn);
table.Columns.Add(itemColumn);
dataSet.Tables.Add(table);
for (int i = 0; i < 2; i++)
{
DataRow newRow = table.NewRow();
newRow["item"] = "item " + i;
table.Rows.Add(newRow);
}
dataSet.AcceptChanges();
string json = JsonConvert.SerializeObject(dataSet, Formatting.None);
Helper.WriteToJson(json);
}
private void ExmpDataread()
{
using (StreamReader r = new StreamReader("exmp.json"))
{
string json = r.ReadToEnd();
var myJSONString = json.ToString();
DataSet dataSet = JsonConvert.DeserializeObject<DataSet>(json);
DataTable dataTable = dataSet.Tables["Table1"];
Console.WriteLine(dataTable.Rows.Count);
}
}
嘿,我的简短代码ExmpDatasave()
用于保存json中的整个数据工作正常; ExmpDataread
会出错:
读取DataSet时意外结束。路径'',第1行,第78位。
我的json值"{\"Table1\":[{\"id\":0,\"item\":\"item 0\"},{\"id\":1,\"item\":\"item 1\"}]}"
请帮我搞清楚。提前谢谢..
答案 0 :(得分:0)
我遇到了这个确切的问题,虽然我不够精明,无法解决这个问题但我能够解决这个问题并且我认为更好。
我决定使用Newtonsoft.Json.Linq;得到类似的结果
dynamic json = JsonConvert.DeserializeObject(reader.ReadToEnd());
JObject js = JObject.Parse(json);
Console.Writeline(js["Table1"].Count);
我不会认为这是一个完整的答案,因为我无法弄清楚为什么它会在一切都说不应该出错时给出错误。但我很高兴找到这条路,所以我希望它有所帮助