Windows Phone 7中缺少System.Json命名空间

时间:2010-03-18 19:44:57

标签: silverlight json windows-phone-7

Mix10 presentation期间,主持人(Charlie Kindel)说,在为WP7编写基于Silverlight的应用程序时,你会得到所有Silverlight 3.0,其中包含一些Silverlight 4.0。

为什么System.Json会丢失?它包含在Silverlight 3.0中,并包含在Silverlight 4.0中。

Windows Phone 7 Class Library Reference

7 个答案:

答案 0 :(得分:14)

添加对System.ServiceModel.Web的引用以及对System.Runtime.Serialization的引用,它应该有效。 System.ServiceModel.Web似乎将.JSON添加到Serialization命名空间。

答案 1 :(得分:7)

您也可以尝试使用DataContractJsonSerializer,它肯定存在于MIX RC工具http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx中。

答案 2 :(得分:4)

似乎在System.Runtime.Serialization.Json命名空间中的Windows Phone 7中支持JSON,希望这会很有用,即使这个问题已经过了一个月! 来自伦敦TechDays(通过Twitter)的信息并非个人信息。


只是一个更新,我在这里引用的命名空间和类是不正确的,所以这里是正确的命名空间和类:

System.Servicemodel.Web和Class是DataContractJsonSerializer,用于Windows Phone 7上的JSON序列化和反序列化 - 对于我在此处发表评论后更正的错误答案感到抱歉。

答案 3 :(得分:2)

虽然DataLontractJsonSerializer在Silverlight中可用,但它似乎在Windows Phone 7 CTP上不可用。也许它会在稍后出现,但它现在不存在了。 (我已尝试在代码中使用它,System.Runtime.Serialization程序集不包含此类,official documentation表示JSON序列化是Silverlight中的内容,但不适用于Windows Phone 7中。)

但是,我能够使用JSON.NET库并从中创建一个WP7库项目。这让我在手机上成功使用了JSON基础设施。

答案 4 :(得分:2)

在我们的Windows Phone 7项目中,我们使用James Newton-Kings JSON.Net Library。只需下载代码并添加对 Newtonsoft.Json.Silverlight 的引用。像魅力一样。

答案 5 :(得分:1)

我无法告诉你为什么JSON命名空间不在那里,但也许你可以使用支持JSON的Windows Phone 7的OData客户端库:

http://www.microsoft.com/downloads/details.aspx?FamilyID=b251b247-70ca-4887-bab6-dccdec192f8d&displaylang=en

答案 6 :(得分:1)

我也不确定为什么,但它在此链接上说不支持命名空间

请参阅Features Supported in Silverlight for Windows Phone