我得到以下错误:
"StrongTypingException -表'{TableName}'中列'{ColumnName}'的值为DBNull "
当我试图序列化一个数据表与一些空值JSON使用JSON.NET。
这是代码:
var dataSet= new DsGameInformatie();
var adapter = new GameTableAdapter();
adapter.FillByGameCategoryID(dataSet.Games, 1);
var settings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
MissingMemberHandling = MissingMemberHandling.Ignore,
ObjectCreationHandling = ObjectCreationHandling.Replace,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore
};
return JsonConvert.SerializeObject(dataSet.Games, Formatting.None, settings);
显然我做错了什么。我错过什么了吗?我如何处理这些DBNull值,使我不得到异常?
数据表中有一个与null相关的错误,现在在Json中修复了。. NET 4.0 Release 3
请参阅如何反序列化ADO。.NET数据表包含空值使用Json.NET?和相关的问题Null值应该表示为System。
假设您的数据集来自数据集设计器,您可以更改它处理空值的方式。
http://msdn.microsoft.com/en-us/library/ya91ataz (v = vs.80) . aspx
这是我在默认情况下使用的。Net做得很好。看看这是否适合你:
return Json(results, JsonRequestBehavior.AllowGet);
把IEnumerable传递给Json函数。
希望对你有帮助。