Windows Phone 8 JSON

7

我在开始开发Windows Phone 8应用程序时,发现著名的JSON.NET尚不支持Windows Phone 8,是否有其他库可用于此目的?


Windows Phone 7 版本的 Json.NET 可以在 WP8 上使用。 - James Newton-King
1
@JamesNewton-King,我尝试使用NuGet将JSON.NET添加到我的项目中,但出现了“无法安装包'Newtonsoft.Json 4.5.10'。您正在尝试将此软件包安装到目标为“WindowsPhone,Version = v8.0”的项目中,但该软件包不包含与该框架兼容的任何程序集引用。有关更多信息,请联系软件包作者。” - TilalHusain
JSON.NET的开发者已经回答了您的问题!请重新尝试! - Apoorv
5个回答

15

JSON.NET codeplex网站表示支持WP8。

更新:使用JSON.NET NuGet包应该可以在Windows Phone 8.0项目中正常运行。在VS2012的NuGet管理器中添加该包会引入JSON.NET的WP7版本。(packages\Newtonsoft.Json.4.5.10\lib\sl3-wp\Newtonsoft.Json.dll

JSON.NET现在也作为可移植类库提供,您可以从NuGet或源代码形式中使用并在WP8上运行。


3
这是我在通过NuGet安装时收到的信息:“无法安装包'Newtonsoft.Json 4.5.10'。您正在尝试将此包安装到目标为“WindowsPhone,Version=v8.0”的项目中,但该包不包含与该框架兼容的任何程序集引用。有关更多信息,请联系包的作者。” - TilalHusain
1
这在我的全新的C# Windows Phone 8.0项目上运行良好。它正在获取“packages\Newtonsoft.Json.4.5.10\lib\sl3-wp\Newtonsoft.Json.dll”,即JSON.NET的WP7版本。我会更新我的答案。 - Paul Annetts
3
如果这个方法对任何人都不起作用,升级 NuGet。使用最新版本的 NuGet,我成功安装了 Json.Net。 - mfperzel
对于所有新手(像我一样)-> Visual Studio -> 项目 -> 管理 NuGet 包 -> 在线。在那里你应该能找到它。如果没有,请使用右上角的搜索框。 - WarrenFaith

8

我也遇到了同样的问题 - 原来是我没有最新版本的NuGet。

要升级,请点击工具 -> 扩展和更新,然后单击更新选项卡。更新所有内容,重新启动程序并重试。 :-)


1
这就是解决了我遇到的“您正在尝试将此包安装到目标为'WindowsPhone,Version=v8.0'的项目中”的问题。即使我今天刚从微软下载了VS工具,这个问题还是影响到了我;它们似乎带有较旧版本的工具。 - Craig Russell

4

我遇到了这个问题。 我编译了Windows Phone 8的源代码,而不是Windows 7.1,然后它就可以工作了。NuGet对我没有用。

以下是我的做法:

  1. 打开JsonXXrXX.zip\Source\Src\Newtonsoft.JSON.WindowsPhone.sln解决方案
  2. 右键单击Newtonsoft.Json.WindowsPhone项目并选择属性
  3. 在“Target Windows Phone OS Version”下拉菜单中选择Windows 8.X
  4. 进行编译
  5. 从输出目录获取DLL、PDB和XML文件
  6. 在您的Windows Phone 8项目中添加对DLL文件的引用

就这样。 我不能保证100%地确保其有效性或您能否提交应用程序。但它应该可以帮助您度过难关,直到官方支持。


1

0

谢谢回复,我能否使用DataContractJsonSerializer解析动态json?由于我将要解析非常复杂的json,并为每个对象创建单独的类似乎是一项繁琐的任务。 - TilalHusain
不,如果JSON结构变得复杂,特别是包含动态数据,这很有可能意味着在代码层面上它是一个字典对象,但目前仍然不支持该功能。 - Marco
好的,我想现在我必须放弃 JSON,那 XML 呢?你能推荐一些动态 XML 解析库吗?谢谢。 - TilalHusain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接