我有一个简单的测试模型:
[Serializable]
public class PageModel : IPageModel
{
Guid _guid;
public Guid GUID
{
get
{
if (_guid == Guid.Empty)
_guid = Guid.NewGuid();
return _guid;
}
set
{
_guid = value;
}
}
public bool ShouldSerializeGUID()
{
return false; // GUID still serialized!
}
}
我尝试将其序列化为:
JavaScriptSerializer serializer = new JavaScriptSerializer();
string jsonData= serializer.Serialize(pageModelInstance);
有人可以告诉我这里缺少什么吗?
还有其他方法可以进行条件序列化吗?
答案 0 :(得分:1)
基本上,JavaScriptSerializer
不支持条件序列化的模式。所以:使用一个 - 幸运的是,Json.NET 支持这一点,并且工作正常:
string jsonData = JsonConvert.SerializeObject(pageModelInstance);
(不需要进行其他更改,但您可以安全地删除[Serializable]
- 这是不需要的)