C# 对象转jSON 如何排除NULL的属性

/// <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的属性过滤掉,该怎么做?

第1个回答  2015-05-13
你这种只能验证,如果为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,就传递一个默认值。

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网