我创建了一个 C# 库项目。该项目在一类中有这一行:
JsonConvert.SerializeObject(objectList);
我收到错误消息
当前上下文中不存在名称 JsonConvert。
为了解决这个问题,我添加System.ServiceModel.Web.dll
了引用但没有运气。我该如何解决这个错误?
JsonConvert
来自命名空间Newtonsoft.Json
,而不是System.ServiceModel.Web
用于NuGet
下载package
“项目”->“管理 NuGet 包”->“搜索“newtonsoft json”。-> 单击“安装”。
右键单击项目并选择Manage NuGet Packages..
In that select Json.NET
and install
安装后,
使用以下命名空间
using Newtonsoft.Json;
然后使用以下反序列化
JsonConvert.DeserializeObject
如果您使用的是 Linux 和 .NET Core,请参阅这个问题,您会想要使用
dotnet add package Newtonsoft.Json
然后添加
using Newtonsoft.Json;
到任何需要它的班级。
或者,如果您使用的是 dotnet Core,
添加到您的 .csproj 文件
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
</ItemGroup>
和
dotnet restore
如果您正在开发 .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
工具 -> NuGet 包管理器 -> 包管理器控制台
PM> Install-Package Newtonsoft.Json
安装包后,您需要通过运行流动命令将 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