如何在C#应用程序中导入JsonConvert?


94

我创建了一个C#库项目。该项目将这一行归为一类:

JsonConvert.SerializeObject(objectList);

我说错了

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

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

Answers:


170

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

使用NuGet下载package

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


您是要构建.NET Core WebApi还是WebSite,请在下面查看我的答案
Mauricio Gracia Gutierrez

1
另外,请确保“使用Newtonsoft.Json;” 有

43

右键单击该项目,然后选择Manage NuGet Packages.. 在其中选择Json.NET并安装

安装后,

使用以下名称空间

using Newtonsoft.Json;

然后使用以下反序列化

JsonConvert.DeserializeObject

对于.net core,您不需要安装newtonsoft-请参阅下文-Mauricio
Gracia Gutierrez,





2

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

只需确保您的控制器方法返回a JsonResultreturn 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/zh-cn/aspnet/core/web-api/advanced/formatting?view=aspnetcore - 2.1


0

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

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

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


0

在C#中尝试一下。有用:

var jsonObject = JsonConvert.DeserializeObject(File.ReadAllText(MyFilePath));

导入以下名称空间:

对于JsonConvert: using Newtonsoft.Json;

对于文件: using System.IO;

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.