วิธีการนำเข้า JsonConvert ในแอปพลิเคชัน C #


98

ฉันสร้างโครงการห้องสมุด C # โครงการมีบรรทัดนี้ในคลาสเดียว:

JsonConvert.SerializeObject(objectList);

ฉันได้รับข้อผิดพลาดว่า

ไม่มีชื่อ JsonConvert ในบริบทปัจจุบัน

เพื่อแก้ไขปัญหานี้ฉันได้เพิ่มSystem.ServiceModel.Web.dllข้อมูลอ้างอิง แต่ไม่มีโชค ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร?

คำตอบ:


176

JsonConvertมาจากเนมสเปซNewtonsoft.Jsonไม่ใช่System.ServiceModel.Web

ใช้NuGetดาวน์โหลดไฟล์package

"โครงการ" -> "จัดการแพ็คเกจ NuGet" -> "ค้นหา" newtonsoft json "-> คลิก" ติดตั้ง "


คุณกำลังสร้าง. NET Core WebApi หรือ WebSite ดูคำตอบของฉันด้านล่าง
Mauricio Gracia Gutierrez

1
ตรวจสอบให้แน่ใจว่า 'ใช้ Newtonsoft.Json;' อยู่ที่นั่น
Dhanuka777

46

คลิกขวาที่โครงการแล้วเลือกManage NuGet Packages.. ในนั้นเลือกJson.NETและติดตั้ง

หลังการติดตั้ง

ใช้เนมสเปซต่อไปนี้

using Newtonsoft.Json;

จากนั้นใช้สิ่งต่อไปนี้เพื่อ deserialize

JsonConvert.DeserializeObject

สำหรับ. net core คุณไม่จำเป็นต้องติดตั้ง newtonsoft - ดูคำตอบของฉันด้านล่าง
Mauricio Gracia Gutierrez

16

ติดตั้งโดยใช้ NuGet:

Install-Package Newtonsoft.Json


โพสต์นี้เป็นคำตอบ


สำหรับ. net core คุณไม่จำเป็นต้องติดตั้ง newtonsoft - ดูคำตอบของฉันด้านล่าง
Mauricio Gracia Gutierrez

7

หรือถ้าคุณใช้ dotnet Core

เพิ่มในไฟล์. csproj ของคุณ

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

และ

dotnet restore

สำหรับ. net core คุณไม่จำเป็นต้องติดตั้ง newtonsoft - ดูคำตอบของฉันด้านล่าง
Mauricio Gracia Gutierrez

6

ลินุกซ์

หากคุณใช้ Linux และ. NET Core ดูคำถามนี้คุณจะต้องใช้

dotnet add package Newtonsoft.Json

แล้วเพิ่ม

using Newtonsoft.Json;

ไปยังชั้นเรียนใด ๆ ที่ต้องการสิ่งนั้น


สำหรับ. net core คุณไม่จำเป็นต้องติดตั้ง newtonsoft - ดูคำตอบของฉันด้านล่าง
Mauricio Gracia Gutierrez


2

หากคุณกำลังพัฒนา. Net Core WebApi หรือ WebSite คุณไม่จำเป็นต้องติดตั้ง newtownsoft.jsonเพื่อดำเนินการ json serialization / deserealization

ตรวจสอบให้แน่ใจว่าวิธีการควบคุมของคุณส่งคืน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.