Newtonsoft Jsonpath (개발자용 작동 방식)
.NET에서 JSON 데이터를 작업한 적이 있다면, 아마도 인기 있는 고성능 JSON 프레임워크인 Newtonsoft.Json 라이브러리를 만났을 것입니다. 이 튜토리얼은 초보자와 중급 사용자가 강력한 라이브러리를 효과적으로 이해하고 사용하는 것을 돕는 데 목표를 두고 있으며, 라이브러리의 시스템 참조, 문서, 그리고 관련 릴리스 업데이트에 중점을 둡니다.
시작하기
Newtonsoft.Json을 사용하려면 먼저 .NET 프로젝트에 설치해야 합니다. 이는 .NET 패키지 관리자 NuGet을 통해 할 수 있습니다. NuGet 패키지 매니저 콘솔에서 다음을 입력하세요:
Install-Package Newtonsoft.Json
설치가 성공적으로 완료되면 다음 사용하는 구문을 추가하여 .NET 프로젝트에 라이브러리를 추가합니다:
using Newtonsoft.Json;
using Newtonsoft.Json;
Imports Newtonsoft.Json
Newtonsoft.JSON과 함께 JSON 파싱하기
JSON 구문 분석은 기본적으로 JSON 형식의 문자열을 .NET 애플리케이션에서 사용할 수 있는 데이터 구조로 변환하는 과정입니다. Newtonsoft.Json을 사용하면 과정이 간단합니다.
사람에 대한 샘플 JSON 객체를 살펴보겠습니다.
{
"Name": "Iron Developer",
"Age": 30,
"Email": "irondeveloper@ironsoftware.com"
}
우리는 이 JSON 문자열을 C# 객체로 JsonConvert.DeserializeObject<t>() 메서드를 사용하여 파싱할 수 있으며, 여기서 T은 우리가 만들고자 하는 객체의 유형입니다. 이 경우, 우리는 Person 클래스를 생성하고 JSON을 그 안으로 파싱할 것입니다.
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
string jsonString = "JSON string here";
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
string jsonString = "JSON string here";
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Public Class Person
Public Property Name() As String
Public Property Age() As Integer
Public Property Email() As String
End Class
Private jsonString As String = "JSON string here"
Private person As Person = JsonConvert.DeserializeObject(Of Person)(jsonString)
이제, person 객체는 JSON 문자열에서 값을 포함하게 됩니다.
JSON 파일 작업
종종 파일에서 JSON 데이터를 읽거나 쓰는 것이 필요합니다. 이 작업을 Newtonsoft.Json으로 어떻게 할 수 있는지 살펴봅시다. 이 경우, 우리는 System.IO 네임스페이스에서 File 클래스를 사용할 것입니다.
JSON 파일을 읽고 객체로 구문 분석하기:
string path = "path to your json file";
string jsonString = File.ReadAllText(path);
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
string path = "path to your json file";
string jsonString = File.ReadAllText(path);
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Dim path As String = "path to your json file"
Dim jsonString As String = File.ReadAllText(path)
Dim person As Person = JsonConvert.DeserializeObject(Of Person)(jsonString)
객체를 JSON 파일에 쓰기:
Person person = new Person()
{
Name = "John Doe",
Age = 30,
Email = "johndoe@example.com"
};
string path = "path to your json file";
string jsonString = JsonConvert.SerializeObject(person);
File.WriteAllText(path, jsonString);
Person person = new Person()
{
Name = "John Doe",
Age = 30,
Email = "johndoe@example.com"
};
string path = "path to your json file";
string jsonString = JsonConvert.SerializeObject(person);
File.WriteAllText(path, jsonString);
Dim person As New Person() With {
.Name = "John Doe",
.Age = 30,
.Email = "johndoe@example.com"
}
Dim path As String = "path to your json file"
Dim jsonString As String = JsonConvert.SerializeObject(person)
File.WriteAllText(path, jsonString)
배열 작업
일부 경우, JSON에는 배열이 포함될 것입니다. 예를 들어, Person 객체는 Friends 배열을 가질 수 있습니다:
{
"Name": "John Doe",
"Friends": [
{
"Name": "Jane Doe",
"Age": 28
},
{
"Name": "Billy",
"Age": 25
}
]
}
JSON 배열을 반복 처리하기 위해 foreach 루프를 사용할 수 있습니다:
JArray friends = (JArray)jsonObject["Friends"];
foreach (JObject friend in friends)
{
string friendName = (string)friend["Name"];
Console.WriteLine(friendName);
}
JArray friends = (JArray)jsonObject["Friends"];
foreach (JObject friend in friends)
{
string friendName = (string)friend["Name"];
Console.WriteLine(friendName);
}
Dim friends As JArray = CType(jsonObject("Friends"), JArray)
For Each [friend] As JObject In friends
Dim friendName As String = CStr([friend]("Name"))
Console.WriteLine(friendName)
Next [friend]
참고: jsonObject은 JSON에서 초기화된 실제 JObject로 대체되어야 합니다.
JSON 수정 및 작성
Newtonsoft.Json을 사용하면 JSON을 쉽고 빠르게 수정하고 작성할 수 있습니다. 가령, 우리의 Person 객체의 Age 값을 업데이트해야 한다고 가정해 봅시다.
jsonObject["Age"] = 31; // Update the age
jsonObject["Age"] = 31; // Update the age
jsonObject("Age") = 31 ' Update the age
그리고 그것을 문자열로 다시 작성합니다:
string updatedJson = jsonObject.ToString();
File.WriteAllText(path, updatedJson); // Write back to the file
string updatedJson = jsonObject.ToString();
File.WriteAllText(path, updatedJson); // Write back to the file
Dim updatedJson As String = jsonObject.ToString()
File.WriteAllText(path, updatedJson) ' Write back to the file
참고: jsonObject은 JSON에서 초기화된 실제 JObject로 대체되어야 합니다.
JSON에 대한 LINQ
Newtonsoft.Json은 LINQ(언어 통합 쿼리)를 사용하여 JSON 객체를 쿼리하고 조작하는 기능도 제공합니다. 이는 매우 강력하며, XML이나 객체의 컬렉션처럼 표준 LINQ 연산자를 사용하여 JSON 객체를 쿼리할 수 있게 합니다.
모든 Friends 중 30세 미만의 이름을 가져오는 방법을 보여주는 샘플입니다:
var youngFriends = jsonObject["Friends"].Where(f => (int)f["Age"] < 30)
.Select(f => (string)f["Name"]);
foreach (string name in youngFriends)
{
Console.WriteLine(name);
}
var youngFriends = jsonObject["Friends"].Where(f => (int)f["Age"] < 30)
.Select(f => (string)f["Name"]);
foreach (string name in youngFriends)
{
Console.WriteLine(name);
}
Imports System
Dim youngFriends = jsonObject("Friends").Where(Function(f) CInt(Math.Truncate(f("Age"))) < 30).Select(Function(f) CStr(f("Name")))
For Each name As String In youngFriends
Console.WriteLine(name)
Next name
참고: jsonObject은 JSON에서 초기화된 실제 JObject로 대체되어야 합니다.
IronPDF 소개
IronPDF에 대해 알아보세요는 .NET 생태계에서 인기 있는 라이브러리로, 개발자가 PDF 파일을 생성, 편집 및 데이터 추출할 수 있게 해줍니다. 매우 다양한 기능을 가지고 있으며, Newtonsoft.Json을 포함한 다른 라이브러리와 원활하게 작동합니다.
IronPDF는 원래 레이아웃과 스타일을 정확히 보존하여 HTML을 PDF로 변환하는 데 탁월합니다. 보고서, 송장 및 설명서와 같은 웹 기반 콘텐츠에서 PDF를 생성하는 데 완벽합니다. HTML 파일, URL 및 원시 HTML 문자열에 대한 지원으로 IronPDF는 고품질의 PDF 문서를 쉽게 생성합니다.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
JSON 데이터를 가지고, 해당 데이터로부터 PDF 보고서를 생성하고자 하는 요구사항이 있다고 가정해 봅시다. 우리는 JSON 데이터 파싱에 Newtonsoft.Json을, PDF 생성에는 IronPDF를 사용할 수 있습니다. 이를 어떻게 할 수 있는지 살펴보겠습니다.
IronPDF의 설치
Newtonsoft.Json처럼 IronPDF도 NuGet을 통해 사용할 수 있습니다. 다음 명령어를 사용하여 설치할 수 있습니다.
Install-Package IronPdf
그런 다음 다음을 추가하여 프로젝트에 포함할 수 있습니다.
using IronPdf;
using IronPdf;
Imports IronPdf
사용 사례 1: JSON 데이터로부터 PDF 생성
이 사용 사례에서는 Newtonsoft.Json과 IronPDF를 사용하여 JSON 데이터로부터 PDF 보고서를 생성하는 방법을 시연할 것입니다. 이는 JSON 형식으로 저장된 데이터를 기반으로 동적 보고서를 생성하는 애플리케이션에 특히 유용할 것입니다.
다음은 우리가 작업할 샘플 JSON 파일입니다:
{
"Title": "Sales Report",
"Month": "August",
"Year": "2023",
"TotalSales": "10000",
"ItemsSold": "500"
}
이 JSON 데이터는 간단한 판매 보고서를 나타냅니다.
첫 번째 단계는 'data.json'이라는 JSON 파일을 읽어들여 이것을 Newtonsoft.Json을 사용하여 사전으로 파싱하는 것입니다:
string jsonString = File.ReadAllText("data.json");
var reportData = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
string jsonString = File.ReadAllText("data.json");
var reportData = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
Dim jsonString As String = File.ReadAllText("data.json")
Dim reportData = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)
이 코드를 실행하면, JSON 파일에서 속성과 그 값들을 나타내는 키-값 쌍을 포함하는 reportData라는 사전을 얻게 됩니다.
다음으로, reportData의 데이터를 사용하여 HTML 템플릿을 생성합니다. reportData 사전의 키는 HTML에 적절한 값을 삽입하는 데 사용됩니다:
string htmlContent = $@"
<html>
<head><title>{reportData["Title"]}</title></head>
<body>
<h1>{reportData["Title"]}</h1>
<p>Month: {reportData["Month"]}</p>
<p>Year: {reportData["Year"]}</p>
<p>Total Sales: {reportData["TotalSales"]}</p>
<p>Items Sold: {reportData["ItemsSold"]}</p>
</body>
</html>";
string htmlContent = $@"
<html>
<head><title>{reportData["Title"]}</title></head>
<body>
<h1>{reportData["Title"]}</h1>
<p>Month: {reportData["Month"]}</p>
<p>Year: {reportData["Year"]}</p>
<p>Total Sales: {reportData["TotalSales"]}</p>
<p>Items Sold: {reportData["ItemsSold"]}</p>
</body>
</html>";
Dim htmlContent As String = $"
<html>
<head><title>{reportData("Title")}</title></head>ignoreignore<body><h1>{reportData("Title")}</h1><p>Month: {reportData("Month")}</p><p>Year: {reportData("Year")}</p><p>Total Sales: {reportData("TotalSales")}</p><p>Items Sold: {reportData("ItemsSold")}</p></body></html>"
마지막으로, IronPDF를 사용하여 HTML 코드를 PDF 문서로 변환합니다. 우리는 ChromePdfRenderer을 사용하여 PDF 렌더러를 생성하고, 이를 사용하여 HTML을 PDF로 변환한 후 PDF를 저장합니다:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("Report.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("Report.pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("Report.pdf")

사용 사례 2: JSON을 PDF 양식으로
이 사용 사례에서는 JSON 데이터를 읽어 PDF 문서의 양식 필드를 채우는 방법을 다룹니다. 이 예제에서는 다음과 같은 JSON 데이터가 있다고 가정해 봅시다:
{
"FirstName": "John",
"LastName": "Smith",
"PhoneNumber": "+19159969739",
"Email": "John@email.com",
"City": "Chicago"
}
이 JSON은 사람의 개인 정보를 나타냅니다.
먼저, 우리는 Newtonsoft.Json을 사용하여 파일에서 JSON 데이터를 읽고 이를 사전으로 파싱합니다:
string jsonString = File.ReadAllText("data.json");
var person = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
string jsonString = File.ReadAllText("data.json");
var person = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
Dim jsonString As String = File.ReadAllText("data.json")
Dim person = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)
이 소프트웨어는 'FirstName', 'LastName', 'PhoneNumber', 'Email', 'City' 및 해당 값들과 같은 키를 가진 person라는 사전을 생성합니다.
다음으로, IronPdf을 사용하여 PDF 문서를 열고 양식을 얻습니다:
var doc = PdfDocument.FromFile("myPdfForm.pdf");
var form = doc.Form;
var doc = PdfDocument.FromFile("myPdfForm.pdf");
var form = doc.Form;
Dim doc = PdfDocument.FromFile("myPdfForm.pdf")
Dim form = doc.Form
이제 person 사전을 사용하여 PDF 문서의 양식 필드를 채울 수 있습니다:
form.Fields[0].Value = person["FirstName"];
form.Fields[1].Value = person["LastName"];
form.Fields[2].Value = person["PhoneNumber"];
form.Fields[3].Value = person["Email"];
form.Fields[4].Value = person["City"];
form.Fields[0].Value = person["FirstName"];
form.Fields[1].Value = person["LastName"];
form.Fields[2].Value = person["PhoneNumber"];
form.Fields[3].Value = person["Email"];
form.Fields[4].Value = person["City"];
form.Fields(0).Value = person("FirstName")
form.Fields(1).Value = person("LastName")
form.Fields(2).Value = person("PhoneNumber")
form.Fields(3).Value = person("Email")
form.Fields(4).Value = person("City")
각 양식 필드는 사람 사전의 키와 연결됩니다.
마지막으로, 채워진 PDF 양식을 저장합니다:
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf")
이 방법은 JSON 파일의 데이터로 채워진 양식 필드가 있는 새 PDF 문서를 생성합니다.
이는 Newtonsoft.Json을 효과적으로 사용하여 JSON 데이터를 파싱하고 IronPDF를 사용하여 PDF 문서를 조작하는 방법을 보여줍니다.

사용 사례 3: PDF 메타데이터를 JSON으로
먼저 IronPDF를 사용하여 PDF에서 메타데이터를 추출하세요:
var pdf = IronPdf.PdfDocument.FromFile("document.pdf");
var metadata = pdf.MetaData;
var pdf = IronPdf.PdfDocument.FromFile("document.pdf");
var metadata = pdf.MetaData;
Dim pdf = IronPdf.PdfDocument.FromFile("document.pdf")
Dim metadata = pdf.MetaData
그런 다음, Newtonsoft.Json을 사용하여 이 데이터를 JSON 문자열로 직렬화합니다:
string jsonString = JsonConvert.SerializeObject(metadata, Formatting.Indented);
File.WriteAllText("metadata.json", jsonString);
string jsonString = JsonConvert.SerializeObject(metadata, Formatting.Indented);
File.WriteAllText("metadata.json", jsonString);
Dim jsonString As String = JsonConvert.SerializeObject(metadata, Formatting.Indented)
File.WriteAllText("metadata.json", jsonString)
이 코드에서 metadata 객체는 Author, Title, CreateDate 등과 같은 속성을 포함합니다. 이러한 속성들은 JSON 문자열로 직렬화되어 'metadata.json'이라는 파일에 기록됩니다.

Newtonsoft.Json과 IronPDF를 결합하면 PDF 파일과 JSON 간의 데이터를 다양한 사용 사례에 맞게 변환할 수 있습니다.
결론
마무리하자면, Newtonsoft.Json 및 IronPDF는 .NET에서 JSON 데이터를 처리하고 PDF 파일을 생성하는 데 강력하고 유연한 솔루션을 제공합니다. Newtonsoft.Json을 사용하여 JSON 데이터를 .NET 객체나 사전으로 파싱하면, 해당 데이터를 조작하여 PDF 양식을 채우거나 템플릿에서 동적 PDF 보고서를 생성하는 등의 다양한 작업을 수행할 수 있습니다. IronPDF는 PDF 생성 및 관리를 간편하고 효율적으로 만들어줍니다.
이 글은 이러한 라이브러리를 소개하고, 그 핵심 기능에 대해 설명했습니다. 하지만 두 라이브러리는 더 많은 기능을 제공합니다. 그들의 광범위한 문서를 확인하여 기능과 역량을 깊게 이해해 보길 강력히 추천드립니다.
IronPDF를 사용해 보고 싶다면, 그들이 IronPDF의 무료 체험을 제공하므로, 구매 전에 기능을 탐색하고 이를 평가해 볼 수 있습니다. IronPDF를 계속 사용하기로 결정했다면, IronPDF 라이선스 옵션에서 라이선스를 시작할 수 있으며, 여기에는 논의한 모든 기능과 지원 및 업데이트에 대한 지속적인 접근이 포함됩니다. 이는 .NET 프로젝트에서 PDF 파일을 효과적으로 생성, 관리, 조작할 수 있는 도구와 지원을 보장합니다.
자주 묻는 질문
.NET에서 JSON을 작업하기 위해 Newtonsoft.Json을 어떻게 설치하나요?
새로운 프로젝트에 Newtonsoft.Json 라이브러리를 추가하려면 NuGet 패키지 관리자를 사용하여 설치하세요. 패키지 관리자 콘솔에서 Install-Package Newtonsoft.Json 커맨드를 실행하세요. 설치되면, 프로젝트에 using Newtonsoft.Json;을 포함하세요.
JsonConvert.DeserializeObject()는 무엇을 위해 사용됩니까?
JsonConvert.DeserializeObject() 메서드는 JSON 데이터를 .NET 객체로 구문 분석하는 데 사용됩니다. 이는 C# 응용 프로그램에서 JSON 데이터를 작업할 수 있도록 JSON 문자열을 유형 T의 객체로 변환합니다.
LINQ를 사용하여 JSON 데이터를 어떻게 조작할 수 있나요?
LINQ to JSON은 Newtonsoft.Json에서 제공하는 기능으로, LINQ 문법을 사용하여 JSON 객체를 쿼리하고 조작하는 것을 허용합니다. 이는 .NET 응용 프로그램 내에서 JSON 데이터를 효율적으로 필터링하거나 검색하는 데 유용합니다.
JSON 데이터에서 PDF 보고서를 어떻게 생성하나요?
JSON 데이터를 사용하여 PDF 보고서를 생성하려면 먼저 JSON을 .NET 객체로 변환해야 합니다. 그런 다음 이 데이터를 사용하여 HTML 템플릿을 만들고, 이 HTML 템플릿을 IronPDF의 ChromePdfRenderer를 사용하여 PDF 문서로 변환하세요.
JSON 데이터를 사용하여 PDF 양식을 채울 수 있나요?
네, JSON 데이터를 사전으로 구문 분석한 후 이를 사용하여 IronPDF로 PDF 양식 필드를 채운 다음 저장된 PDF 문서에 적용하여 PDF 양식을 채울 수 있습니다.
PDF 메타데이터를 JSON으로 어떻게 변환할 수 있나요?
IronPDF로 PDF의 메타데이터를 추출하고, 이를 Newtonsoft.Json을 사용하여 JSON 문자열로 변환하세요. 이 과정은 PDF 메타데이터를 JSON 형식으로 쉽게 저장하고 조작할 수 있게 합니다.
Newtonsoft.Json과 IronPDF를 함께 사용하는 장점은 무엇인가요?
.NET 응용 프로그램에서 IronPDF와 함께 Newtonsoft.Json을 사용하면 JSON 데이터를 처리하고 PDF 파일을 생성하거나 조작하는 것을 원활하게 수행할 수 있으며, 동적 보고서 생성, 양식 채우기 및 데이터 교환 작업을 쉽게 수행할 수 있습니다.
.NET에서 JSON 파일을 읽고 쓰는 방법은?
JSON 파일을 읽으려면 File.ReadAllText를 사용하여 JSON 문자열을 불러오고, JsonConvert.DeserializeObject로 구문 분석하세요. JSON을 쓰려면 객체를 JsonConvert.SerializeObject로 직렬화하고, File.WriteAllText를 사용하여 저장하세요.




