【问题标题】:How to import JsonConvert in C# application?如何在 C# 应用程序中导入 JsonConvert?
【发布时间】:2013-09-13 10:59:31
【问题描述】:

我创建了一个 C# 库项目。该项目在一类中有这一行:

JsonConvert.SerializeObject(objectList);

我说错了

名称 JsonConvert 在当前上下文中不存在。

为了解决这个问题,我在引用中添加了System.ServiceModel.Web.dll,但没有运气。我该如何解决这个错误?

【问题讨论】:

    标签: c# json.net


    【解决方案1】:

    JsonConvert 来自命名空间Newtonsoft.Json,而不是System.ServiceModel.Web

    使用NuGet下载package

    “项目”->“管理 NuGet 包”->“搜索“newtonsoft json”。-> 点击“安装”。

    【讨论】:

    • 您是在构建 .NET Core WebApi 还是网站,请参阅下面的答案
    • 另外,请确保“使用 Newtonsoft.Json;”有没有
    【解决方案2】:

    右键单击项目并选择Manage NuGet Packages.. 在那选择Json.NET并安装

    安装后,

    使用以下命名空间

    using Newtonsoft.Json;
    

    然后使用下面的反序列化

    JsonConvert.DeserializeObject
    

    【讨论】:

    • 对于 .net 核心,您不需要安装 newtonsoft - 请参阅下面的答案
    【解决方案3】:

    使用 NuGet 安装它:

    Install-Package Newtonsoft.Json
    


    张贴this 作为答案。

    【讨论】:

    • 对于 .net 核心,您不需要安装 newtonsoft - 请参阅下面的答案
    【解决方案4】:

    Linux

    If you're using Linux and .NET Core, see this question,你会想要使用

    dotnet add package Newtonsoft.Json
    

    然后加上

    using Newtonsoft.Json;
    

    到任何需要它的类。

    【讨论】:

    • 对于 .net 核心,您不需要安装 newtonsoft - 请参阅下面的答案
    • (这也适用于带有 .NET Core 和 dotnet CLI 的 Windows)
    【解决方案5】:

    或者,如果您使用的是 dotnet Core,

    添加到您的 .csproj 文件

      <ItemGroup>
        <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
      </ItemGroup>
    

    还有

    dotnet restore
    

    【讨论】:

    • 对于 .net 核心,您不需要安装 newtonsoft - 请参阅下面的答案
    【解决方案6】:

    如果您正在开发 .Net Core WebApi 或 WebSite,则无需安装 newtownsoft.json 即可执行 json 序列化/去序列化

    只要确保你的控制器方法返回一个JsonResult 并像这个例子一样调用return Json(&lt;objectoToSerialize&gt;);

    namespace WebApi.Controllers
    {
        [Produces("application/json")]
        [Route("api/Accounts")]
        public class AccountsController : Controller
        {
            // GET: api/Transaction
            [HttpGet]
            public JsonResult Get()
            {
                List<Account> lstAccounts;
    
                lstAccounts = AccountsFacade.GetAll();
    
                return Json(lstAccounts);
            }
        }
    }
    

    如果您正在开发.Net Framework WebApi 或WebSite,您需要使用NuGet 下载并安装newtonsoft json

    “项目”->“管理 NuGet 包”->“搜索“newtonsoft json”。-> 点击“安装”。

    namespace WebApi.Controllers
    {
        [Produces("application/json")]
        [Route("api/Accounts")]
        public class AccountsController : Controller
        {
            // GET: api/Transaction
            [HttpGet]
            public JsonResult Get()
            {
                List<Account> lstAccounts;
    
                lstAccounts = AccountsFacade.GetAll();
    
                //This line is different !! 
                return new JsonConvert.SerializeObject(lstAccounts);
            }
        }
    }
    

    更多细节可以在这里找到 - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1

    【讨论】:

      【解决方案7】:

      工具 -> NuGet 包管理器 -> 包管理器控制台

      PM> Install-Package Newtonsoft.Json
      

      【讨论】:

      • 对于 .net 核心,您不需要安装 newtonsoft - 请参阅下面的答案
      【解决方案8】:

      安装包后需要通过运行命令将newtonsoft.json.dll添加到汇编路径中。

      在我们可以使用我们的程序集之前,我们必须将它添加到全局程序集缓存 (GAC)。再次打开 Visual Studio 2008 命令提示符(对于 Vista/Windows7/等,以管理员身份打开)。并执行以下命令。 gacutil /i d:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

      点击此链接了解更多信息 http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

      【讨论】:

        猜你喜欢
        • 2013-11-30
        • 1970-01-01
        • 1970-01-01
        • 2012-04-19
        • 2012-05-10
        • 2021-02-04
        • 2016-10-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多