Newtonsoft Jsonpath (Geliştiriciler İçin Nasıl Çalışır)
.NET'te JSON verisi ile çalıştıysanız, büyük ihtimalle .NET için yüksek performanslı bir JSON çerçevesi olan Newtonsoft.Json kütüphanesine rastlamışsınızdır. Bu ders, başlangıç ve orta düzey kullanıcılara bu güçlü kütüphaneyi etkili bir şekilde anlamaları ve kullanmaları için yardım etmeyi amaçlamaktadır; sistem referansları, dokümantasyon ve ilgili herhangi bir sürüm güncellemelerine odaklanarak.
Başlarken
Newtonsoft.Json kullanmaya başlamak için, onu .NET projenize kurmanız gerekmektedir. Bu, .NET paket yöneticisi olan NuGet aracılığıyla yapılabilir. NuGet Paket Yönetici Konsolu'nda şu komutu yazın:
Install-Package Newtonsoft.Json
Başarılı bir yüklemeden sonra, kütüphaneyi .NET projenize eklemek için aşağıdaki 'using' ifadesini ekleyin:
using Newtonsoft.Json;
using Newtonsoft.Json;
Imports Newtonsoft.Json
JSON'u Newtonsoft.JSON ile Ayrıştırma
JSON ayrıştırma, bir JSON formatındaki dizgeyi .NET uygulamanızda kullanılabilir bir veri yapısına dönüştürme sürecidir. Newtonsoft.Json ile süreç basittir.
Bir kişi için örnek bir JSON nesnesine bakalım:
{
"Name": "Iron Developer",
"Age": 30,
"Email": "irondeveloper@ironsoftware.com"
}
Bu JSON dizesini, oluşturmak istediğimiz nesnenin türü olan T ile C# nesnesine JsonConvert.DeserializeObject<t>() yöntemi kullanarak ayrıştırabiliriz. Bu durumda, bir Person sınıfı oluşturacağız ve JSON'u ona ayrıştıracağız.
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)
Şimdi, person nesnesi, JSON dizesindeki değerleri içerecek.
JSON Dosyalarıyla Çalışma
Sıkça bir dosyadan JSON verisi okumanız veya bir dosyaya JSON verisi yazmanız gerekecektir. Bunu Newtonsoft.Json ile nasıl yapabileceğimize bakalım. Bu durumda, System.IO ad alanından File sınıfını kullanacağız.
Bir JSON dosyasını okuyup bir nesneye ayrıştırmak için:
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)
Bir nesneyi bir JSON dosyasına yazmak için:
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)
Dizilerle Çalışma
Bazı durumlarda JSON'unuz diziler de içerir. Örneğin, bir Person nesnesi, bir Friends dizisi içerebilir:
{
"Name": "John Doe",
"Friends": [
{
"Name": "Jane Doe",
"Age": 28
},
{
"Name": "Billy",
"Age": 25
}
]
}
JSON dizisi üzerinde yineleme yapmak için foreach döngüsünü kullanabilirsiniz:
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]
Not: jsonObject, JSON'dan başlatılmış gerçek bir JObject ile değiştirilmelidir.
JSON'u Değiştirme ve Yazma
Newtonsoft.Json, JSON'u değiştirmeyi ve yazmayı kolay hale getirir. Diyelim ki bizim Person nesnemizin Age değerini güncellemeniz gerekiyor.
jsonObject["Age"] = 31; // Update the age
jsonObject["Age"] = 31; // Update the age
jsonObject("Age") = 31 ' Update the age
Ve sonra tekrar bir dizgeye yazin:
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
Not: jsonObject, JSON'dan başlatılmış gerçek bir JObject ile değiştirilmelidir.
JSON için LINQ
Newtonsoft.Json ayrıca LINQ (Dil Tabanlı Sorgulama) kullanarak JSON nesnelerini sorgulama ve manipüle etme işlevselliği de sağlar. Bu çok güçlüdür, çünkü bir JSON nesnesini sorgularken XML veya bir nesne koleksiyonu ile yaptığınız gibi tüm standart LINQ operatörlerini kullanmanızı sağlar.
İşte 30 yaşından küçük tüm Arkadaşlar'ın isimlerini nasıl çekebileceğinizi gösteren bir örnek:
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
Not: jsonObject, JSON'dan başlatılmış gerçek bir JObject ile değiştirilmelidir.
IronPDF'ye Giriş
IronPDF Hakkında Öğrenin, geliştiricilerin PDF dosyalarını oluşturması, düzenlemesi ve veri çıkarması için .NET ekosisteminde yaygın bir kütüphanedir. Son derece çok yönlüdür ve Newtonsoft.Json dahil diğer kütüphanelerle sorunsuz çalışır.
HTML'den PDF'ye dönüştürmede IronPDF, özgün düzenlerin ve tarzların hassas korunmasını sağlamakta üstünlük sağlar. Web tabanlı içeriklerden, örneğin raporlar, faturalar ve belgeler gibi PDF'ler oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri desteği ile IronPDF kolaylıkla yüksek kaliteli PDF belgeler üretir.
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 verisine sahip olduğunuz bir senaryo varsayalım ve bu veriden bir PDF rapor oluşturmak istiyoruz. JSON verisini ayrıştırmak için Newtonsoft.Json'u ve PDF oluşturmak için IronPDF'u kullanabiliriz. Bunu nasıl yapabileceğimize bakalım.
IronPDF'in Yüklenmesi
Newtonsoft.Json gibi, IronPDF da NuGet aracılığıyla mevcuttur. Şu komut kullanılarak kurabilirsiniz:
Install-Package IronPdf
Sonra projenize eklemek için şu ifadeyi ekleyebilirsiniz:
using IronPdf;
using IronPdf;
Imports IronPdf
Kullanım Durumu 1: JSON Verisinden PDF Oluşturma
Bu kullanım durumunda, Newtonsoft.Json ve IronPDF kullanarak JSON verisinden bir PDF raporu üretmeyi göstereceğiz. Bu, JSON formatında depolanan verilere dayalı dinamik raporlar oluşturan uygulamalar için özellikle kullanışlı olabilir.
Çalışacağımız örnek bir JSON dosyası:
{
"Title": "Sales Report",
"Month": "August",
"Year": "2023",
"TotalSales": "10000",
"ItemsSold": "500"
}
Bu JSON verisi basit bir satış raporunu temsil eder.
İlk adım, burada 'data.json' adlı JSON dosyasını okuyup, Newtonsoft.Json kullanarak bir sözlüğe ayrıştırmaktır:
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)
Bu kodu çalıştırdıktan sonra, JSON dosyasındaki özellikleri ve değerlerini temsil eden anahtar-değer çiftlerini içeren reportData adında bir sözlüğe sahip olacaksınız.
Sonraki adımda, reportData verilerinden bir HTML şablonu oluşturuyoruz. reportData sözlüğündeki anahtarlar, uygun değerleri HTML'ye eklemek için kullanılır:
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>"
Son olarak, HTML kodunu bir PDF dokümanına dönüştürmek için IronPDF'u kullanıyoruz. HTML'yi PDF'ye dönüştürmek için bir PDF oluşturucu oluşturmak, kullanmak ve ardından PDF'yi kaydetmek için ChromePdfRenderer kullanıyoruz:
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")

Kullanım Durumu 2: JSON'dan PDF Formu
Bu kullanım durumunda, bir PDF dokümanında form alanlarını doldurmak için JSON verisi okuyacağız. Bu örnek için, aşağıdaki JSON verisine sahip olduğumuzu düşünelim:
{
"FirstName": "John",
"LastName": "Smith",
"PhoneNumber": "+19159969739",
"Email": "John@email.com",
"City": "Chicago"
}
Bu JSON, bir kişi için özel bilgileri temsil eder.
İlk olarak, dosyadan JSON verilerini okumak ve bir sözlüğe ayrıştırmak için Newtonsoft.Json kullanıyoruz:
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)
Bu yazılım, anahtarları "FirstName," "LastName," "PhoneNumber," "Email," ve "City" ve bunlara karşılık gelen değerlerle adlandırılmış bir person sözlüğü oluşturur.
Sonraki adımda, IronPdf kullanarak PDF belgesini açıyor ve formu alıyoruz:
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 sözlüğünü, PDF belgesindeki form alanlarını doldurmak için şimdi kullanabiliriz:
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")
Her bir form alanı, kişi sözlüğünden bir anahtar ile bağlantılıdır.
Son olarak, doldurulan PDF formunu kaydediyoruz:
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf");
doc.SaveAs("myPdfForm_filled.pdf")
Bu yöntem, JSON dosyasından gelen verilerle form alanları doldurulmuş yeni bir PDF dokümanı oluşturacaktır.
Bu, JSON verilerini ayrıştırmak için Newtonsoft.Json ve PDF belgelerini manipüle etmek için IronPDF'i etkin bir şekilde nasıl kullanabileceğinizi gösterir.

Kullanım Durumu 3: PDF Meta Verisini JSON'a Dönüştürme
İlk olarak, IronPDF kullanarak PDF'den meta verilerini çıkartın:
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
Daha sonra bu verileri, Newtonsoft.Json kullanarak bir JSON dizesine seri hale getirin:
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)
Bu kodda, metadata nesnesi, Author, Title, CreateDate gibi özellikler içerir. Bunlar, bir JSON dizesine seri hale getirilir ve "metadata.json" adlı bir dosyaya yazılır.

Newtonsoft.Json ve IronPDF'yi birleştirerek PDF dosyaları ile JSON arasında veri dönüştürmenize olanak tanır ve geniş bir kullanım senaryosuna uyum sağlar.
Sonuç
Sonuç olarak, Newtonsoft.Json ve IronPDF bir araya gelerek JSON verilerini işlemek ve .NET içinde PDF dosyaları üretmek için güçlü ve esnek bir çözüm sunar. Newtonsoft.Json ile JSON verilerini .NET nesneleri veya sözlüklerine ayrıştırarak, bu veriyi çeşitli bağlamlarda, örneğin PDF formları doldurmak veya şablonlardan dinamik PDF raporları oluşturmak gibi kullanabiliriz. IronPDF, PDF oluşturma ve yönetim sürecini basit ve etkili hale getirir.
Bu makale, kütüphaneleri tanıttı ve bazı temel işlevlerini vurguladı. Ancak, her iki kütüphanenin de sunacak çok daha fazlası var. Özellikleri ve yetenekleri hakkında derinlemesine bir anlayış için kapsamlı belgelerini öğrenmenizi şiddetle tavsiye ederiz.
IronPDF'yi denemekle ilgileniyorsanız, özelliklerini keşfedip ihtiyaçlarınızı karşıladığına karar vermeniz için satın almadan önce bir IronPDF ücretsiz denemesi sunuyorlar. IronPDF ile devam etmeye karar verdiğinizde, lisans seçenekleri IronPDF Lisans Seçenekleri ile başlar, bu da tartıştığımız tüm özelliklere, destek ve güncellemelere devam eden erişim sağlar. Bu, .NET projelerinizde PDF dosyalarını etkili bir şekilde oluşturmak, yönetmek ve manipüle etmek için araçlar ve destek sağladığınızdan emin olmanızı sağlar.
Sıkça Sorulan Sorular
.NET'te JSON ile çalışmak için Newtonsoft.Json nasıl yüklenir?
Newtonsoft.Json kütüphanesini .NET projenize NuGet Paket Yönetimi ile yükleyebilirsiniz. Paket Yönetimi Konsolu'nda Install-Package Newtonsoft.Json komutunu çalıştırin. Yükleme tamamlandiktan sonra, using Newtonsoft.Json; ifadesini projenize dahil edin.
JsonConvert.DeserializeObject() nedir için kullanılır?
JsonConvert.DeserializeObject() yöntemi, JSON verilerini .NET nesnelerine dönüştürmek için kullanılır. Bu yöntem, JSON dizelerini tür T olan nesnelere dönüştürerek, C# uygulamalarınızda JSON verileriyle çalışmanıza olanak sağlar.
JSON verilerini LINQ kullanarak nasıl manipüle edebilirim?
LINQ to JSON, Newtonsoft.Json tarafindan saglanan bir özelliktir ve JSON objelerini LINQ sentaksı kullanarak sorgulamaniza ve manipüle etmenize olanak tanir. Bu, JSON verileri icinde filtreleme veya arama işlemleri yapmak için etkilidir ve .NET uygulamalarinizda verimli biçimde kullanılabilir.
JSON verilerinden nasıl PDF raporu oluşturabilirim?
JSON verilerinden bir PDF raporu oluşturmak için önce JSON'u Newtonsoft.Json kullanarak .NET objelerine dönüştürun. Daha sonra bu verileri kullanarak bir HTML şablona oluşturun. HTML şablonunu IronPDF'in ChromePdfRenderer araci ile bir PDF dokümanina dönüştürun.
JSON verilerini kullanarak PDF formlari doldurabilir miyim?
Evet, JSON verilerini bir sozluge cevirerek, daraltarak ve sonra IronPDF kullanarak PDF form alanlarini bu verilerle doldurarak PDF dosyalarını kaydedebilirsiniz.
PDF meta verilerini JSON'a nasıl dönüştürebilirim?
PDF'ten meta verilerini IronPDF kullanarak çıkartin ve sonra Newtonsoft.Json ile bir JSON string'ine dönüştürun. Bu süreç, PDF meta verilerini JSON formatinda kolayca depolamanizi ve manipüle etmenizi saglar.
Newtonsoft.Json ve IronPDF'i birlikte kullanmanin avantajlari nelerdir?
.NET uygulamasinda Newtonsoft.Json ile IronPDF kullanmak, JSON verilerini işlemek ve PDF dosyalarını oluşturmak veya değiştirmek için sorunsuz bir yol sunar. Dinamik rapor oluşturma, form doldurma ve veri degisimi gibi işler için kolaylik saglar.
.NET'te JSON dosyalarını nasıl okuyup yazabilirim?
Bir JSON dosyasini okumak için, File.ReadAllText kullanarak JSON dizgisini yükleyin, sonra JsonConvert.DeserializeObject ile ayrıştırin. JSON yazmak için, bir objeyi JsonConvert.SerializeObject ile seri hale getirin ve File.WriteAllText ile kaydedin.




