为什么我不能在C#中引用System.Runtime.Serialization.Json

Met*_*ian 28 c# api json using-statement

我想使用API​​从interwebz获取信息.API以Json格式返回数据.

  1. 我正在运行Microsoft Visual Studio C#2010 Express.
  2. 我似乎将.NET Framework 4 Client Profile设置为我的"目标框架",但老实说我不确定这意味着什么.
  3. 这是一个Windows窗体应用程序...

要显示的代码不多,因为没有适当的using语句我就无法真正开始...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Net;
using System.Runtime.Serialization.Json;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

名称空间'System.Runtime.Serialization'中不存在类型或命名空间名称'Json'(您是否缺少程序集引用?)

我错过了一个DLL文件或什么?基于我徒劳无功地搜索解决方案的时间,我明白.NET 4.xx应该已经拥有解析Json格式化字符串所需的工具?

Cat*_*lMF 54

System.Runtime.Serialization.Json命名空间在两个不同的DLL中,具体取决于您的.net框架.

在.NET 3.5中它位于System.ServiceModel.Web.dll中

在.NET 4.0及更高版本中它位于System.Runtime.Serialization.dll中.

确保在项目中添加了正确的DLL作为参考,并添加using System.Runtime.Serialization.Json;到代码文件的顶部.

编辑 - 考虑使用JSON.NET

即使.NET Framework提供了自己的JSON序列化和反序列化命名空间(DataContractJsonSerializer和JavaScriptSerializer),您应该调查是否最好使用JSON.NET.

JSON.NET更易于使用,性能更好,功能更多. http://www.newtonsoft.com/json/help/html/JsonNetVsDotNetSerializers.htm


小智 11

您需要从引用导入System.Runtime.Serialization dll


edd*_*cat 8

您需要添加对项目的引用.

在Solution Explorer中右键单击引用,然后添加引用.您将看到DLL的列表,您必须选中将其添加到项目所需的框旁边的框.完成此操作后,您可以成功添加using语句.

希望有所帮助!