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

时间:2014-03-07 16:37:22

标签: c# json api using-statement

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

  1. 我正在运行Microsoft Visual Studio C#2010 Express添加。
  2. 似乎我将.NET Framework 4 Client Profile设置为my “目标框架”但我真的不确定到底是什么 装置中。
  3. 这是一个Windows窗体应用程序......
  4. 显示的代码不多,因为如果没有合适的using语句我就无法真正开始......

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    using System.Net;
    using System.Runtime.Serialization.Json;
    

    我收到此错误:

      

    名称空间中不存在类型或命名空间名称“Json”   'System.Runtime.Serialization'(你错过了一个程序集吗?   引用?)

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

5 个答案:

答案 0 :(得分:53)

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

答案 1 :(得分:11)

您需要从参考

导入System.Runtime.Serialization dll

答案 2 :(得分:8)

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

在解决方案资源管理器中右键单击引用,然后添加引用。您将看到DLL的列表,您必须选中将其添加到项目所需的框旁边的框。完成此操作后,您可以成功添加using语句。

希望有所帮助!

答案 3 :(得分:4)

从C#序列化和反序列化JSON的一般过程是:

添加对System.Runtime.Serialization库的引用。

为System.Runtime.Serialization和System.Runtime.Serialization.Json添加using指令。

答案 4 :(得分:1)

请将Target framework.NET Framework 4 Client Profile更改为.NET Framework 4