现在程序里需要将Json转换成List<Model>,但是Json数据里有一列ID为空值,所以程序报错了,请各位大侠指点一下,如果遇到空值改如何转换呢
下面这段是我的转换代码:
/// <summary> /// Json反序列化,返回对象 /// </summary> /// <typeparam name="T">反序列化类型</typeparam> /// <param name="jsonString">反序列化字符串</param> /// <returns>反序列化后的值</returns> public static T JsonToModel<T>(string jsonString) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { try { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); T jsonObject = (T)serializer.ReadObject(ms); return jsonObject; } catch (Exception ex) { throw ex; } finally { ms.Close(); ms.Dispose(); } } }
下面这个是调用:
List<Model> subList = JsonToModel<List<Model>(model.JsonString);
1.GUID 设置为 GUID? guid
2.或者做判断,如果这个ID为空,Guid guid = Guid.Empty;
空值如果不能去掉的话,就转换成new Guid()吧,你数据库ID肯定不能为空呀
改代码。。加DBNull.Value判断。
请问要在哪里加这个判断呢
@淘@淘: 调用微软代码的,只能自己检测传过来的传不能为Null,CYQ.Data 开源代码里有个JsonHelper类,也可以直接拿来用,有源码可以自己改。
空的话guid 可以用guid.empty
subList 如何取值?