【问题标题】:System.Json namespace missing from Windows Phone 7Windows Phone 7 中缺少 System.Json 命名空间
【发布时间】:2010-03-18 19:44:57
【问题描述】:

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

【问题讨论】:

    标签: silverlight json windows-phone-7


    【解决方案1】:

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

    【讨论】:

    • 添加 System.ServiceModel.Web 真的很奇怪。它确实将 .Json 添加到序列化命名空间
    • 谢谢。适合我
    【解决方案2】:

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

    【讨论】:

    • 虽然此类在 Silverlight 中存在,但在 Windows Phone 7 中不存在。
    • 它现在似乎确实存在(就我正在查看的 Beta 工具而言)。
    • 我找不到,我有工具的最终版本。
    • @rosarch 真的吗? msdn.microsoft.com/library/ff637320(v=VS.95).aspx 另有说明。
    • 在花了太长时间寻找这个之后 - 您需要添加对 System.Servicemodel.Web 的引用,然后使用 System.Runtime.Serialization.Json。很明显啊!
    【解决方案3】:

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


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

    System.Servicemodel.Web 和类是 DataContractJsonSerializer,用于 Windows Phone 7 上的 JSON 序列化和反序列化 - 抱歉,在此处发表评论后我已更正了不准确的回复。

    【讨论】:

    • 此命名空间在 Windows Phone 7 上不存在,抱歉。然而,它在 Silverlight 中。
    • 实际上它在 Windows Phone 7 中受支持我引用了错误的命名空间和类,因为我当时不确定它是什么,感谢它提醒我的评论。 System.Servicemodel.Web 中的 DataContractJsonSerializer 用于 JSON 序列化和反序列化,而不是 System.Runtime.Serialization.Json,因为那是 Silverlight 命名空间 - 我当时假设它们与命名空间上的信息相同,当我回答时并不明显.
    【解决方案4】:

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

    但是,我能够使用 JSON.NET 库并从中创建一个 WP7 库项目。这让我在电话上获得了一个我正在成功使用的 JSON 基础架构。

    【讨论】:

    • 我尝试从我的 wp7 应用项目中添加对 JSON.NET 的 .NET 压缩版本的引用,但它失败了。你是说你重建了源码?
    【解决方案5】:

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

    【讨论】:

    • 我也在用这个,它是平台的一个很好的解决方案。
    【解决方案6】:

    我也不知道为什么,但它在这个链接上说不支持命名空间

    Features Supported in Silverlight for Windows Phone

    【讨论】:

    • 我想我错过了。感谢您指出我明显错过的内容。
    【解决方案7】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      相关资源
      最近更新 更多