116

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

JsonConvert.SerializeObject(objectList);

我收到错误消息

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

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

4

8 回答 8

195

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

用于NuGet下载package

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

于 2013-09-13T10:59:55.407 回答
50

右键单击项目并选择Manage NuGet Packages.. In that select Json.NETand install

安装后,

使用以下命名空间

using Newtonsoft.Json;

然后使用以下反序列化

JsonConvert.DeserializeObject
于 2014-08-26T06:44:46.107 回答
17

使用 NuGet 安装它:

Install-Package Newtonsoft.Json


将此作为答案发布。

于 2016-02-11T17:14:33.117 回答
10

Linux

如果您使用的是 Linux 和 .NET Core,请参阅这个问题,您会想要使用

dotnet add package Newtonsoft.Json

然后添加

using Newtonsoft.Json;

到任何需要它的班级。

于 2017-12-29T07:55:40.440 回答
8

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

添加到您的 .csproj 文件

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

dotnet restore
于 2017-08-31T07:38:34.820 回答
4

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

只要确保你的控制器方法返回一个JsonResult和调用return Json(<objectoToSerialize>);像这个例子

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

于 2018-06-12T10:51:34.330 回答
3

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

PM> Install-Package Newtonsoft.Json
于 2017-10-23T17:34:43.803 回答
0

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

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

流此链接以获取更多信息 http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

于 2019-01-03T11:06:49.697 回答