代码之家  ›  专栏  ›  技术社区  ›  Methodician

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

  •  32
  • Methodician  · 技术社区  · 11 年前

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

    1. 我正在运行Microsoft Visual Studio C#2010 Express插件。
    2. 我似乎已将.NET Framework 4客户端配置文件设置为 “目标框架”,但老实说,我不确定这到底是什么 方法
    3. 这是一个Windows窗体应用程序。。。

    没有太多代码要显示,因为如果没有适当的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格式字符串所需的工具了?

    6 回复  |  直到 6 年前
        1
  •  63
  •   CathalMF    9 年前

    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; 到代码文件的顶部。

    EDIT-考虑使用JSON.NET

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

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

        2
  •  13
  •   Eanthmue    11 年前

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

        3
  •  9
  •   eddie_cat    11 年前

    您需要向项目添加引用。

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

    希望这有帮助!

        4
  •  4
  •   Jawier    9 年前

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

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

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

        5
  •  1
  •   Wasif Hossain    11 年前

    请更改您的 Target framework 从…起 .NET Framework 4 Client Profile .NET Framework 4

        6
  •  0
  •   ColorCodin Mansueli    2 年前

    我知道这是一个老问题,但我在.NET5.0中遇到了这个问题,解决方案是添加 using System.Text.Json 到代码顶部。