how create json structure using c
JSON Yapısının Oluşturulması (Bölüm-2):
Önceki eğitimimizde tartıştık örnek veri kümelerini kullanarak basit bir JSON dosyası oluşturma .
Ayrıca, verileri JSON biçiminde serileştirmek için bir json.Net çerçevesinin kullanımıyla ilgili ayrıntıları da öğrendik. Tarafımızdan sağlanan verileri ve anahtar değerlerini kullanmak için basit bir konsol uygulaması oluşturmak için C # ve Visual Studio'dan yararlandık ve ardından bu anahtar değerlerini JSON yapısına serileştirdik. Şimdi, ilerledikçe bu eğiticinin neleri kapsayacağını görelim.
Bu eğitimde, daha karmaşık JSON yapısı oluşturmanın yollarını tartışacağız. Birden çok veri kümesiyle diziler oluşturacağız ve ayrıca JSON'da iç içe yapı oluşturmanın yollarını arayacağız.
Çeşitli sistemler arasında veri aktarımı için kullanılan JSON dosyalarının çoğu daha karmaşık veri yapıları içerir. Bu nedenle, karmaşık JSON yapısı hakkında bilgi edinmek, JSON şema gereksinimlerine göre test verileri oluşturmanıza yardımcı olacaktır.
Ne öğreneceksin:
- Kodu Yazmak
- JSON'a Birden Çok Veri İçeren Dizi Ekleme
- JSON anahtarlarına Atamadan Önce Veriler Üzerinde İşlem Yapma
- Yuvalanmış bir JSON Yapısı Oluşturma
- JSON için Veri Kaynağı Olarak Bir Excel Sayfasını Kullanma
- Sonuç
- Önerilen Kaynaklar
Kodu Yazmak
Bu eğitimde önceki yazımıza atıfta bulunacağız. Bu nedenle, herkese devam etmeden önce önceki öğreticiden geçmesini öneririm.
Önceki eğitimimizde kullandığımız JSON verilerini kullanacağız. Ayrıca önceki JSON örneğimiz için yazdığımız aynı kod setini takip edeceğiz.
Şimdi başlayalım.!!
JSON'a Birden Çok Veri İçeren Dizi Ekleme
JSON'a bir dizi eklemek için önceki veri kümemize bir dizi anahtarı ekleyelim.
Veri setimiz aşağıda gösterildiği gibi olacaktır:
JSON'a bir dizi nesnesi eklemek, diğer anahtar değerleri eklemeye benzer. Değerler, dizinin kendisinin bildirimi sırasında doğrudan atanabilir. Değerler bir diziye atandıktan sonra, JSON newtonsoft nesneleri anahtar-değer çiftleri halinde serileştirecektir.
Diziyi JSON'a eklemek için, onu 'Çalışan' sınıfın kendisi. (Ayrıntılar için lütfen önceki eğitimimize bakın)
namespace jsonCreate { class Employee { public string FirstName = 'Sam'; public string LastName = 'Jackson'; public int employeeID = 5698523; public string Designation = 'Manager'; public string() KnownLanguages = { 'C#', 'Java', 'Perl' }; } }
Gördüğünüz gibi, Diziyi doğrudan Employee sınıfında ilan ettik. Ana yöntemde herhangi bir değişiklik yapmayın. JSON nesnesi için farklı bir sınıf oluşturmak, nesneleri düzenli tutmamıza yardımcı olacaktır.
JSON yapısında her değişiklik olduğunda veya başka bir veri kümesi eklemek istediğinizde, yapmanız gereken tek şey, projenin her yerinde değişiklikler yapmak yerine, yalnızca söz konusu sınıf dosyasındaki değişiklikleri yapmaktır. Bu, Main yönteminizin çoğu zaman aynı kalacağı ve değişikliklerin yalnızca sınıflar içinde gerçekleşeceği anlamına gelir.
Programı çalıştıralım ve JSON dosyamızı diziyle oluşturalım.
Şimdi içeriği kopyalayıp yapıştırın İşte oluşturulan JSON'un geçerli olup olmadığını doğrulamak için.
Tıkla JSON'u doğrula onaylamak için düğmesine basın. JSON anahtar / değer çiftleri düzenlenecek ve verilen veri kümesi üzerinde doğrulama gerçekleştirilecektir.
JSON anahtarlarına Atamadan Önce Veriler Üzerinde İşlem Yapma
Bazı verilerimiz olduğunu ve bu verileri JSON anahtarlarına değerler olarak atamadan önce bu veriler üzerinde bazı işlemler gerçekleştirmek istediğimizi varsayalım.
Böyle bir durumda bunu nasıl yapacağız?
Örneğin: JSON'a aktardığımız çalışan kimliği iki bölümden oluşuyor, ilk üç harf konum kodunu ve son 4 rakam çalışan numarasını gösteriyor. Her ikisini de birleştirmek bize bir çalışanın çalışan kimliğini verecektir.
Konum kodunu ve Çalışan Numarasını ayrı olarak alırsak, bir çalışan kimliği oluşturmak için bunları birleştirmemiz gerekecektir. Ancak o zaman onu JSON'dan geçirebiliriz.
Bu tür senaryoların üstesinden gelmek için, verileri bir anahtara atamadan önce veriler üzerinde işlem yapmamız gerekir.
Bunun nasıl yapılabileceğine bir bakalım.
Çalışan sınıfımıza geri dönelim ve içinde tüm işlemleri gerçekleştireceğimiz başka bir sınıf oluşturalım.
Burada, çalışan verilerindeki işlemleri içermek ve gerçekleştirmek için başka bir sınıf oluşturacağız.
Yeni bir 'EmployeeData' sınıfı oluşturalım.
Sınıf oluşturuldu ve şimdi 'Çalışan' sınıfımız olarak genel erişim belirticisi ve dönüş türü ile bir yöntem oluşturalım. Yöntem adını şu şekilde sağladık: 'EmployeeDataOps' . Ancak kendi adınızı verebilirsiniz. Bunu daha basit hale getirmek için bu metot içerisinde herhangi bir parametre geçirmiyorum.
Dönüş türünü bir sınıf olarak tanımladığımız gibi, Employee sınıfının bir örneğini döndürmemiz gerekecek. Bunu yapmak için yöntemin içinde bir sınıf nesnesi oluşturacağız.
Burada Employee sınıfı için bir nesne oluşturduk. EmpObj ve yöntemin sonunda, nesneyi döndürdük.
EmployeeData sınıfının içinde Tam konum kodunu ve çalışan numarasını temsil eden iki tamsayı tanımlayalım. Bir kez ilan edildiğinde, işlemleri gerçekleştirmek için kullanacağız ve ardından ilgili anahtarlara değerler atayacağız.
int locationCode = 569; int employeeNumber = 8523;
Artık konum kodu ve çalışan numarasına sahip olduğumuz için, çalışan kimliğini bulmak için üzerlerinde işlem yapabiliyoruz. Bunu yapmak için, her iki tamsayıyı birleştirmek için basit bir kod yazacağız.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Bu, çalışan kimliğini oluşturan her iki tam sayıyı birleştirecektir. Çalışan kimliğini değişken altında sakladık 'EmpID' ve şimdi bu değişkeni EmpObj'de 'çalışan kimliği' olarak aktaracağız.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
Örnek kodun tamamı aşağıda gösterildiği gibi görünecektir:
yazılım geliştirme yaşam döngüsü tasarım aşaması
Daha önce Employee sınıfında staffID değişkenine atadığımız değeri kaldırdığımızı fark ettiniz mi? Bunu, değerini geri verdiğimiz için yaptık. EmployeeDataOps () yöntem. Dolayısıyla, değişkenlere yönelik veriler bu yöntemin kendisinden beslenecektir. Bu, değerleri doğrudan beyan etme zorunluluğunu ortadan kaldırır.
film 4k için yedek film akışı sitesi
Şimdi yöntemle işimiz bittiğinden, bu yöntemin çağrılabilmesi için bu yöntemin bir örneğini ana yönteme eklememiz gerekecek.
Bunu yapmak için, ana yöntemde başka bir sınıf nesnesi oluşturacağız. 'Çalışan Verileri' sınıf.
EmployeeData empData = new EmployeeData();
Bir sınıf nesnesi oluşturduktan sonra, şimdi bu sınıfın içindeki yöntemi daha önce çalışan sınıfı için oluşturduğumuz Emp nesnesine atayacağız.
emp = empData.EmployeeDataOps();
Son olarak, ana yöntemin içindeki kod şuna benzeyecektir:
Birkaç test verisi koyalım:
Yer Kodu = 123
Çalışan Numarası = 9874
Bu verileri koda ve ana yöntemdeki son değişikliklerle birlikte koyacağız. Şimdi kodumuzu tamamladık. Şimdi kodu çalıştıralım ve JSON'umuzu doğrulayalım.
Oluşturulan JSON şudur:
Gördüğünüz gibi, çalışan kimliği için yeni birleştirilmiş değer JSON değerine girildi.
Bu JSON'yi kopyalayıp yapıştıralım İşte yapısını doğrulamak için. Metni JSON lint sitesine koyun.
Yapıyı aşağıda gösterildiği gibi doğrulamak için doğrula düğmesini kullanın:
Yuvalanmış bir JSON Yapısı Oluşturma
Şimdiye kadar tartıştığımız örnek, bir dizi veya nesne içinde esas olarak dize ve sayısal değerleri kullanır. Ancak JSON, bir dizi öğesiyle aynı kavramı kullanarak bir JSON nesnesinin tamamını ifade etmek için de kullanılabilir. Listedeki nesne üyeleri kendi nesnelerini ve dizi anahtarlarını kullanabilir.
Daha önceki eğitimlerimizden biri olan JSON'a Giriş bölümünde, iç içe geçmiş JSON'un nasıl göründüğüne ilk baktık. Bu eğiticide, çalışanın da bir Arabası olduğunu ve JSON'un çalışan arabasıyla ilgili tüm ayrıntıları içermesi gerektiğini varsayıyoruz.
Yani sonunda elde ettiğimiz JSON yapısı şuna benzer olacak:
Burada, tüm verilerle çalışan JSON'umuz var, ardından çalışan JSON'sunun içine yerleştirilmiş bir Car JSON nesnemiz de var. Araba nesnesinin kendi anahtarları ve değerleri vardır.
Bu JSON'u programlı bir şekilde oluşturmayı deneyelim.
Bunun için, önceki eğitimimizde oluşturduğumuz JSON ile başlayacağız. İşi kolaylaştırmak için yeni bir sınıfta yeni JSON nesnesini (yani Car JSON) oluşturacağız. Yeni bir sınıf arabası ekleyeceğiz ve bu sınıftaki tüm nesneleri bir genel erişim tanımlayıcısı ile ekleyeceğiz.
Şimdi, değeri doğrudan buraya ekleyebiliriz ya da yeni bir sınıf yazabilir ve önceki öğreticide yaptığımıza benzer değerleri atamak için bir sınıf nesnesi dönüş türü ile özel bir yöntem oluşturabiliriz. Kolaylık sağlamak için, değeri doğrudan anahtar değişkenlere atayacağız.
Şimdi nesneler ve değerlerle yeni bir sınıf oluşturduk. Bir sonraki adımda, bunu Employee JSON yapısına ekleyeceğiz, böylece JSON serileştirme gerçekleştiğinde, Car sınıfındaki anahtar / değer çiftlerinin de çalışan sınıfıyla birlikte serileştirilmesi gerekir. yuvalanmış JSON.
Bunu yapmak için önce Employee sınıfına sınıf tipi bir araba eklememiz gerekecek. Bu nesne, Car sınıfında bulunan değerleri depolamak için kullanılacaktır.
Yukarıda gösterildiği gibi, veri tipine sahip yeni değişkeni Car sınıfı olarak atadık. Şimdi EmployeeData sınıfının içinde oluşturduğumuz EmployeeDataOps () yöntemine gidelim. Car sınıfından değişkenleri ve değerleri çağırmak için kodu yazacağız.
İlk olarak, araba sınıfı için bir sınıf nesnesi oluşturalım:
Car carObj = new Car();
Bu nesne, araba sınıfındaki tüm verileri içerecektir. Araba sınıfındaki tüm verileri bu nesneye bildirdikten sonraki adım, bu verileri (araba nesnesinin içinde bulunan veriler) bu verileri tutmak için oluşturduğumuz araba değişkenine atamak olacaktır.
Bunu yapmak için, araba değişkenine erişmek için oluşturduğumuz Employee nesnesini kullanacağız. Ve sonra veriyle birlikte araba nesnesini doğrudan araba değişkenine atayabiliriz.
EmpObj.car = carObj;
Bu kadar. Bir sınıfta bir değişken oluşturduk, sonra başka bir sınıfın değerine erişmek için başka bir nesne oluşturduk, ardından değeri ilk değişkene atadık.
Şimdi programımızı çalıştıralım ve bakalım istenen JSON'u oluşturabilecek mi?
Yukarıda gösterildiği gibi, bir car json anahtarının yaratıldığını ve anahtar ve değerler olarak Car sınıfına girdiğimiz tüm verileri içerdiğini görüyoruz. Şimdi, JSON içeriğini tekrar kopyalayacağız ve İşte JSON'u doğrulamak için.
Sadece tüm JSON içeriğini metin alanına kopyalayın ve 'JSON'ı doğrula ' buton.
Böylece, JSONlint sitesi verilerimizi düzenledi ve mükemmel bir şekilde doğruladı. JSON yapısında istediğimiz gibi “car” nesnesinin düzenlendiğini görebiliriz. Aynı işlemi kullanarak, birden çok iç içe geçmiş JSON düzeyi oluşturabilirsiniz. JSON nesnesini sınıfa eklemeye devam edin ve değerini bir sınıf değişkenine atayın.
Gördüğünüz gibi, ana yöntemimizdeki herhangi bir kodu değiştirmemize bile gerek yok.
JSON için Veri Kaynağı Olarak Bir Excel Sayfasını Kullanma
Önceki eğitimlerimizde, JSON'un farklı yapılarını oluşturmanın birkaç yolunu tartıştık. Ancak tüm yapılarımızda büyük bir sorun vardı, anahtarların değerlerini her zaman zor kodluyorduk.
Bu eğiticide, verileri JSON anahtarlarına beslemek için bir excel sayfası kullanmanın yollarını tartışacağız. Önceki derslerde yazdığımız aynı kodu tartışacağımızdan, buna devam etmeden önce daha önce tartıştığımız tüm eğitimleri gözden geçirmenizi tavsiye ederim.
Adım adım ilerlemek, tüm konsepti daha iyi anlamanıza yardımcı olacaktır.
Umarım bir JSON oluşturmak için temel kodu anlamışsınızdır, bu bölümde aynı kod yapısını ileriye taşıyacağız.
Öncelikle JSON verileriyle bir excel dosyası oluşturalım.
Aşağıdaki ayrıntılarla bir workingData.xlsx dosyası oluşturduk.
Excel'den değerleri çıkarmak için kod yazmaya başlamadan önce, projemize bir montaj referansı eklememiz gerekecek. Office nesnesine erişmek için, C # bize Microsoft Office Interop'u sunar. Bunlar, ofis nesnelerine kolay erişim sağlamada oldukça yararlıdır.
selenium java mülakat soruları ve cevapları
Bu projede excel kullandığımız için Microsoft Office Interop Excel montaj referansını kullanacağız.
Yüklemek için, Referanslara sağ tıklayın çözüm gezgininizde ve ardından NuGet Paketlerini Yönetin . Arama çubuğuna Microsoft Office Interop Excel yazın ve arama sonucu gerekli paketi gösterecektir.
Microsoft Office Interop Excel'i edindikten sonra Yükle düğmesi yüklemek için.
Kurulum tamamlandıktan sonra, Microsoft Office Interop Excel'in projedeki montaj referansları listesine eklendiğini görebilirsiniz.
Başlangıç olarak, önce farklı excel öğelerini atayalım.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Burada Excel uygulamasına, excel çalışma kitabına ve excel çalışma sayfasına değerler atadık. Bunlar tanımlandıktan sonra, bunları excel sayfasındaki değerlere erişmek için sonraki adımlarımızda kullanacağız.
Bir Excel sayfasından bir değer almak istiyorsak, genel olarak izlediğimiz adımlar nelerdir?
Öncelikle excel uygulamasına erişiyoruz, ardından excel çalışma kitabını ve excel çalışma sayfasını açıyoruz ve daha sonra elementi satır ve sütun değerlerine göre buluyoruz. Burada benzer bir şey yapacağız.
Bu kod excel uygulamasına erişecektir.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Bu kod, çalışma kitabını verilen konumda verilen adla açacaktır.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Şimdi, çalışma kitabının içindeki belirli çalışma sayfasına erişmek için bir kod yazacağız. 'Sayfa1' adlı bir çalışma sayfamız var (excel sayfasındaki varsayılan ad)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Çalışma Sayfasına eriştiğimiz için, şimdi bir sonraki adım doğru sütunu ve doğru verileri bulmak olacaktır. İlk önce 'Anahtar' olan bir sütun arayacağız.
Örneğin, İlk önce 'FirstName' değerine sahip sütunu arayalım. Değeri bulduğumuzda, sütun numarasını çıkaracağız. Daha sonra, ilk satırın başlığı ve ikinci satırın verilerimizi içerdiğini bildiğimiz için, kesin verileri çıkarmak için sütun numarasını ve satır numarasını kullanacağız.
Bu, FirstName'in sütun numarasını değişkende saklayacaktır.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Şimdi, altındaki hücreden değeri çıkarmak için FirstName'in sütun numarasını kullanacağız. Bilindiği gibi, değer yöntemi yalnızca dize türünü döndürecektir, bu nedenle bunu bir dize değişkeninde saklayacağız.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Şimdi, değişkende depolanan First Name değerine sahibiz. Bu nedenle, değer atamak için yöntemimizde tanımladığımız çalışan nesnesini kullanacağız.
Yöntemimizi kullanarak değerleri geri döndüreceğimiz için lütfen Çalışan sınıfında atadığınız / kodladığınız tüm değerleri kaldırın.
Ancak bununla ilgili bir sorun var: '.Metin' işlev her zaman bir dize değeri döndürür. Dolayısıyla, bir tam sayı olan bir çalışan kimliğinin değerini çıkarmak istersek, aynı zamanda bir dize olarak da çıkarılacaktır. Dolayısıyla, bu dizeyi JSON nesnesine atamadan önce bir tam sayıya dönüştürmemiz gerekecek. Bunu yapmak için, değeri doğrudan bir tam sayıya ayrıştıracağız.
Bu nedenle, çalışan kimliği kodu aşağıda gösterildiği gibi görünecektir:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
Sonunda, JSON'umuz çalışan kimliğini bir tamsayı değeri olarak tanıdığı için dize değerini bir tamsayı olarak ayrıştıracağız.
Bu nedenle, 4 sütunun tümü için veri getirmenin genel kodu aşağıda gösterildiği gibi görünecektir:
Şimdi tek yapmamız gereken, excel sayfasındaki verilerle oluşturduğumuz değişkenleri çalışan nesnelerine atamak.
Her şey ayarlandı, şimdi projeyi inşa edeceğiz. Derleme tamamlandığında, JSON'u oluşturmak için programı çalıştıracağız.
Aşağıdaki JSON oluşturulacak:
Şimdi, JSON'daki verileri excel sayfasındakilerle karşılaştıralım.
Yukarıda gösterildiği gibi, JSON verileri excel sayfasının 4 sütunundaki verilerle eşleşir. Programımızın oluşturduğu JSON'yi doğrulayalım. Bunu yapmak için tekrar ziyaret edeceğiz İşte . Sadece tüm JSON içeriğini metin alanına kopyalayın ve 'JSON'u Doğrula' buton.
Yaşasın! Excel'deki verileri kullanarak geçerli bir JSON oluşturduk.
Sizin için egzersiz:
Üç düzeyli iç içe geçmiş bir JSON oluşturun. Bir üst JSON Şirketi oluşturun ve daha önce oluşturduğumuz çalışan JSON'unu araba JSON ile birlikte iç içe geçirin.
Sonuç
Şimdi eğitimimizin sonuna geldik. Uzun bir öğretici oldu ama birkaç şey öğrendik. C # programlama kullanarak basit bir JSON oluşturmayı ve farklı JSON veri kümelerini farklı bir sınıfta kategorize etmenin faydalarını öğrendik. Diziler ve hatta bir ana JSON içinde başka bir JSON yapısı eklemek için programlama becerilerimizi de kullandık.
Son olarak, değerleri JSON anahtarlarına beslemek için başka bir veri kaynağından veri getirmenin yolları üzerinde çalıştık.
Umarım şimdiye kadarki tüm JSON eğitim serisini beğenmişsinizdir.
Eğitim 4: Arabirim Testi için JSON Kullanma
Önerilen Kaynaklar
- C # Kodunu Kullanarak JSON Nesneleri Nasıl Oluşturulur (JSON Oluşturma Bölüm 1)
- En Popüler JSON Röportaj Soruları ve Cevapları
- Arabirim Testi için JSON Kullanma
- JSON Eğitimi: Giriş ve Yeni Başlayanlar İçin Tam Bir Kılavuz
- Çizim ile C ++ 'da Kuyruk Veri Yapısı
- MongoDB Veritabanı Yedeklemesi Oluştur
- Çizimle C ++ 'da Yığın Veri Yapısı
- Çizim ile C ++ 'da Dairesel Bağlantılı Liste Veri Yapısı