Gue*_*lla 1 c# datatable json.net deserialization json-deserialization
在这里以及其他论坛的一些帖子中,我发现这个代码用于将Json对象转换为DataTable:
DataTable dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));
Run Code Online (Sandbox Code Playgroud)
我不能让这个工作.它总是抛出JsonSerializationException.我错过了什么吗?
这是显示错误的简单示例:
JObject query = new JObject();
JObject results = new JObject();
results.Add("Name", "Blue Umbrella");
results.Add("Price", 100);
query.Add("results", results);
DataTable dt = (DataTable)JsonConvert.DeserializeObject(query.ToString(), (typeof(DataTable)));
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
使用类似的东西:
JArray array = new JArray();
{
JObject row = new JObject();
row.Add("Name", "Blue Umbrella");
row.Add("Price", 100);
array.Add(row);
}
{
JObject row = new JObject();
row.Add("Name", "Green Umbrella");
row.Add("Price", 200);
array.Add(row);
}
DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
Run Code Online (Sandbox Code Playgroud)
"容器"必须是a JArray.
下次遇到类似问题时,正如@Dr所建议的那样.Wily,只需尝试序列化一些东西:
var dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Price");
var row = dt.NewRow();
row["Name"] = "Blue Umbrella";
row["Price"] = 100;
dt.Rows.Add(row);
row = dt.NewRow();
row["Name"] = "Green Umbrella";
row["Price"] = 200;
dt.Rows.Add(row);
string serialized = JsonConvert.SerializeObject(dt);
Run Code Online (Sandbox Code Playgroud)
看看它的格式:
[{"Name":"Blue Umbrella","Price":"100"},{"Name":"Green Umbrella","Price":"200"}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12833 次 |
| 最近记录: |