I created a C# library project. The project has this line in one class:
JsonConvert.SerializeObject(objectList); I'm getting error saying
the name JsonConvert doesn't exist in the current context.
To fix that, I added System.ServiceModel.Web.dll to references but had no luck. How can I solve this error?
8 Answers
JsonConvert is from the namespace Newtonsoft.Json, not System.ServiceModel.Web
Use NuGet to download the package
"Project" -> "Manage NuGet packages" -> "Search for "newtonsoft json". -> click "install".
2right click on the project and select Manage NuGet Packages.. In that select Json.NET and install
After installation,
use the following namespace
using Newtonsoft.Json; then use the following to deserialize
JsonConvert.DeserializeObject 1Install it using NuGet:
Install-Package Newtonsoft.Json
Posting this as an answer.
Linux
If you're using Linux and .NET Core, see this question, you'll want to use
dotnet add package Newtonsoft.Json And then add
using Newtonsoft.Json; to any classes needing that.
2Or if you're using dotnet Core,
add to your .csproj file
<ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="9.0.1" /> </ItemGroup> And
dotnet restore 1If you are developing a .Net Core WebApi or WebSite you dont not need to install newtownsoft.json to perform json serialization/deserealization
Just make sure that your controller method returns a JsonResult and call return Json(<objectoToSerialize>); like this example
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); } } } If you are developing a .Net Framework WebApi or WebSite you need to use NuGet to download and install the newtonsoft json package
"Project" -> "Manage NuGet packages" -> "Search for "newtonsoft json". -> click "install".
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); } } } More details can be found here -
Tools -> NuGet Package Manager -> Package Manager Console
PM> Install-Package Newtonsoft.Json 1After instaling the package you need to add the newtonsoft.json.dll into assemble path by runing the flowing command.
Before we can use our assembly, we have to add it to the global assembly cache (GAC). Open the Visual Studio 2008 Command Prompt again (for Vista/Windows7/etc. open it as Administrator). And execute the following command. gacutil /i d:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll