在Mix10 presentation期间,主持人(Charlie Kindel)说,在为WP7编写基于Silverlight的应用程序时,你会得到所有Silverlight 3.0,其中包含一些Silverlight 4.0。
为什么System.Json会丢失?它包含在Silverlight 3.0中,并包含在Silverlight 4.0中。
答案 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客户端库:
答案 6 :(得分:1)
我也不确定为什么,但它在此链接上说不支持命名空间