/// <summary>
/// 从一个对象信息生成Json串
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static string ObjectToJson(object obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0, (int)stream.Length);
return Encoding.UTF8.GetString(dataBytes, 0, dataBytes.Length);
}
传进来的对象,有些属性为NULL,我希望在序列化前,能把NULL的属性过滤掉,该怎么做?
如果你想为NULL就排除该属性,我没这么干过。如果你要这么做,以你用的DataContractJsonSerializer类,你需要给那个属性添加一个特性,这个需要用到反射,而且我还不知道能不能成功。
还有你为什么一定要用DataContractJsonSerializer,如果你想简单的进行序列化,完全可以用JavaScriptSerializer追问
System.Text.StringBuilder sb = new System.Text.StringBuilder();
JavaScriptSerializer json = new JavaScriptSerializer();
json.Serialize(o, sb);
return sb.ToString(); 可怎么过滤NULL 呢?
System.Text.StringBuilder sb = new System.Text.StringBuilder();
JavaScriptSerializer json = new JavaScriptSerializer();
json.Serialize(o, sb);
return sb.ToString(); 可怎么过滤NULL 呢?
过滤你就判断,是否为null如果为null,就传递一个默认值。
本回答被网友采纳