我需要在.NET Compact Framework 2.0下序列化和反序列化自定义对象。我已经学习了JSON.NET 3.5,但它需要.NET Compact Framework 3.5。
我被限制不能从2.0升级到3.5。当我尝试使用JSON.Net 2.0版本时,Serialize和Deserialize操作会挂起。
---Serialize-----
List<string> strMessage = (JavaScriptConvert.DeserializeObject(results, typeof(List<string>)) as List<string>);
-----Deserialize----
List<object> paramObject = new List<object>(paramCollection);
string postData = string.Empty;
if (paramObject.Count > 0)
{
postData = JavaScriptConvert.SerializeObject(paramObject);
}
注:paramCollection是对象数组(object[])
上面的代码有问题吗?我在Desktop上测试了同样的方法,发现它可以工作,但在Compact Framework中不行。
大约一年前,我遇到了同样的问题。JSON,紧凑的框架,.net 2
我最终使用http://jsoncf.codeplex.com/
我在codebetter.com上找到的源页面确实包含以下免责声明:
Use it at your own risk - it’s very early in in development and poorly tested.
总的来说,我发现它是有效的;从内存来看,它不能很好地处理null,我想我必须调整日期时间串行化,使其像其他json串行化器那样工作
如果你有兴趣追求这一点,我可以去找到我需要做的修改并发布。
Andrew