Làm cách nào để nhập JsonConvert trong ứng dụng C #?


98

Tôi đã tạo một dự án thư viện C #. Dự án có dòng này trong một lớp:

JsonConvert.SerializeObject(objectList);

Tôi gặp lỗi khi nói

tên JsonConvert không tồn tại trong ngữ cảnh hiện tại.

Để khắc phục điều đó, tôi đã thêm System.ServiceModel.Web.dllvào tài liệu tham khảo nhưng không gặp may. Làm thế nào tôi có thể giải quyết lỗi này?

Câu trả lời:


176

JsonConvertlà từ không gian tên Newtonsoft.Json, không phảiSystem.ServiceModel.Web

Sử dụng NuGetđể tải xuốngpackage

"Dự án" -> "Quản lý gói NuGet" -> "Tìm kiếm" newtonsoft json ". -> nhấp vào" cài đặt ".


là bạn đang xây dựng một NET Lõi WebAPI hoặc WebSite xem câu trả lời của tôi dưới đây
Mauricio Gracia Gutierrez

1
ngoài ra, hãy đảm bảo rằng 'using Newtonsoft.Json;' ở đó
Dhanuka777

46

nhấp chuột phải vào dự án và chọn Manage NuGet Packages.. Trong đó chọn Json.NETvà cài đặt

Sau khi cài đặt,

sử dụng không gian tên sau

using Newtonsoft.Json;

sau đó sử dụng phần sau để giải mã

JsonConvert.DeserializeObject

Đối với lõi .net bạn không cần phải cài đặt newtonsoft - xem answerbelow tôi
Mauricio Gracia Gutierrez


7

Hoặc nếu bạn đang sử dụng dotnet Core,

thêm vào tệp .csproj của bạn

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

dotnet restore

Đối với lõi .net bạn không cần phải cài đặt newtonsoft - xem answerbelow tôi
Mauricio Gracia Gutierrez


4

Công cụ -> Trình quản lý gói NuGet -> Bảng điều khiển Trình quản lý gói

PM> Install-Package Newtonsoft.Json

Đối với lõi .net bạn không cần phải cài đặt newtonsoft - xem answerbelow tôi
Mauricio Gracia Gutierrez

2

Nếu bạn đang phát triển .Net Core WebApi hoặc WebSite, bạn không cần cài đặt newtownoft.json để thực hiện tuần tự hóa / hủy đăng ký json

Chỉ cần đảm bảo rằng phương thức điều khiển của bạn trả về một JsonResultvà gọi return Json(<objectoToSerialize>);như ví dụ này

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);
        }
    }
}

Nếu bạn đang phát triển .Net Framework WebApi hoặc WebSite, bạn cần sử dụng NuGet để tải xuống và cài đặt newtonsoft jsongói

"Dự án" -> "Quản lý gói NuGet" -> "Tìm kiếm" newtonsoft json ". -> nhấp vào" cài đặt ".

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);
        }
    }
}

Bạn có thể tìm thấy thêm chi tiết tại đây - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1


0

Sau khi cài đặt gói, bạn cần thêm newtonsoft.json.dll vào đường dẫn lắp ráp bằng cách chạy lệnh đang chạy.

Trước khi có thể sử dụng lắp ráp của mình, chúng ta phải thêm nó vào bộ đệm ẩn lắp ráp chung (GAC). Mở lại Visual Studio 2008 Command Prompt (đối với Vista / Windows7 / etc. Hãy mở nó với tư cách Quản trị viên). Và thực hiện lệnh sau. gacutil /id:\myMethodsForSSIS\myMethodsForSIS\bin\Release\myMethodsForSSIS.dll

chuyển liên kết này để biết thêm thông tinATION http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html


0

Hãy thử điều này trong C #. Nó hoạt động:

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

Nhập không gian tên bên dưới:

Đối với JsonConvert: using Newtonsoft.Json;

Đối với tệp: using System.IO;

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.