C # 애플리케이션에서 JsonConvert를 가져 오는 방법은 무엇입니까?


98

C # 라이브러리 프로젝트를 만들었습니다. 이 프로젝트는 한 클래스에 다음 줄이 있습니다.

JsonConvert.SerializeObject(objectList);

다음과 같은 오류가 발생합니다.

JsonConvert라는 이름이 현재 컨텍스트에 존재하지 않습니다.

이를 수정하기 위해 System.ServiceModel.Web.dll참조를 추가 했지만 운이 없었습니다. 이 오류를 어떻게 해결할 수 있습니까?

답변:


176

JsonConvert네임 스페이스에서 가져온 것이 Newtonsoft.Json아니라System.ServiceModel.Web

NuGet다운로드에 사용package

"프로젝트"-> "NuGet 패키지 관리"-> ""newtonsoft json "검색->"설치 "클릭.


당신은이 .NET 코어 WebApi 또는 웹 사이트 내 대답은 아래를 참조 구축하고있다
마우 그라시아 구티에레즈

1
또한 'using Newtonsoft.Json;' 이
Dhanuka777

46

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Manage NuGet Packages.. In that select Json.NETand install

설치 후

다음 네임 스페이스 사용

using Newtonsoft.Json;

그런 다음 다음을 사용하여 deserialize

JsonConvert.DeserializeObject

.NET 핵심 위해 당신은 newtonsoft 설치해야 해달라고 - 내 answerbelow 참조
마우 그라시아 구티에레즈


7

또는 dotnet Core를 사용하는 경우

.csproj 파일에 추가

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

dotnet restore

.NET 핵심 위해 당신은 newtonsoft 설치해야 해달라고 - 내 answerbelow 참조
마우 그라시아 구티에레즈



2

.Net Core WebApi 또는 WebSite를 개발하는 경우 json 직렬화 / 비 현실화 를 수행하기 위해 newtownsoft.json설치할 필요가 없습니다.

컨트롤러 메서드 가이 예제와 같이 a 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 에서 찾을 수 있습니다.


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


0

C #에서 시도해보십시오. 효과가있다:

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

네임 스페이스 아래 가져 오기 :

JsonConvert의 경우 : using Newtonsoft.Json;

파일 : using System.IO;

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.