Bagaimana untuk Menukar JSON kepada Kelas C#

Bagaimana Untuk Menukar Json Kepada Kelas C



JSON atau Notasi Objek JavaScript adalah berdasarkan subset bahasa pengaturcaraan JavaScript, tetapi ia bebas bahasa dan boleh digunakan dengan mana-mana bahasa pengaturcaraan yang mempunyai penghurai JSON. Untuk menggunakan JSON data dalam pengaturcaraan C#, seseorang perlu menukar JSON kepada a Kelas C# . Ini membolehkan pengaturcara berinteraksi dengan data dengan cara yang selamat jenis, yang mengurangkan risiko kesilapan dan menjadikan kod lebih mudah untuk diselenggara.

Berkerja dengan JSON data dalam C# selalunya memerlukan penukaran data JSON ke dalam Kelas C# yang boleh diedit dan digunakan dengan mudah dalam aplikasi. Tutorial ini akan meneruskan proses penukaran JSON data ke kelas C#, dengan contoh kod untuk membantu anda sepanjang perjalanan.







Cara Menukar JSON kepada Kelas C#

Langkah-langkah untuk menukar a JSON kepada a Kelas C# ialah:



Langkah 1: Analisis data JSON



Langkah pertama dalam menukar JSON kepada a Kelas C# adalah untuk menganalisis data JSON dan menentukan strukturnya. Ini melibatkan mengenal pasti kunci atau sifat data dan jenis data yang sepadan. Setelah maklumat ini dikumpulkan, kami boleh mula mencipta kelas C# yang sepadan yang akan mewakili data JSON.





Langkah 2: Buat kelas C# yang mewakili data JSON

The JSON nama data kemudiannya digunakan untuk menentukan kelas. Di dalam kelas ini, kami menentukan sifat yang sepadan dengan kunci dalam JSON data. Kami menetapkan jenis data sifat untuk memadankan jenis data nilai dalam JSON data. Sebagai contoh, jika kunci dalam JSON data mempunyai nilai rentetan, kami mentakrifkan sifat yang sepadan dalam kelas C# sebagai rentetan.



Langkah 3: Nyahserialisasi data JSON

Selepas mencipta kelas C#, langkah seterusnya ialah menyahsiri JSON data ke dalam contoh kelas. Ini boleh dilakukan dengan Newtonsoft.Json perpustakaan, yang menyediakan API mudah untuk penyahserikatan JSON data. Anda perlu memasang dan mengimport Newtonsoft.Json pakej untuk menggunakannya dalam kod anda. Buat contoh daripada JsonSerializer kelas dan hubungi Desirialisasi kaedah, menyerahkan JSON data sebagai rentetan dan kelas C# sebagai parameter jenis generik:

menggunakan Newtonsoft.Json;

// data JSON
rentetan json = '{' nama ':' John Smith ',' umur ':30}' ;
// C # kelas
Orang kelas awam
{
rentetan awam Nama { dapatkan; ditetapkan ; }
awam int Umur { dapatkan; ditetapkan ; }
}
// Menyahsiri data JSON menjadi objek Orang
Orang orang = JsonConvert.DeserializeObject < Orang > ( json ) ;

The JSON data dalam contoh ini ialah objek ringkas dengan nama dan harta umur, dan kelas C# ialah kelas Orang dengan sifat yang serupa. JsonConvert.DeserializeObject digunakan untuk menukar JSON data menjadi objek Orang yang boleh diedit dan digunakan dalam aplikasi.

Langkah 4: Manipulasi objek C#

Selepas deserialisasi data JSON ke dalam a Objek C# , ia boleh dimanipulasi dan digunakan dalam aplikasi seperti yang dikehendaki. Sifat boleh dibaca atau ditetapkan, kaedah boleh digunakan, dan objek boleh disediakan sebagai parameter kepada prosedur atau fungsi lain.

Berikut ialah contoh cara bekerja dengan Orang objek yang anda buat dalam langkah sebelumnya:

// Dapatkan orang itu nama
nama rentetan = orang.Nama;

// Tetapkan orang itu'
umur s
orang.Umur = 31 ;

// Panggil kaedah pada objek orang
orang.CetakButiran ( ) ;

Objek orang digunakan dalam contoh ini untuk mendapatkan nama orang itu, menetapkan umur orang itu dan memanggil PrintDetails kaedah pada objek.

Berikut ialah kod lengkap yang menunjukkan cara untuk tukar JSON kepada kelas C# .

menggunakan Sistem;
menggunakan Newtonsoft.Json;

ruang nama JsonToClassExample
{
Program kelas
{
lompang statik Utama ( tali [ ] args )
{
rentetan json = @ '{
'Nama depan': 'Larry',
'Nama Akhir': 'Kevin',
'alamat': {
'jalan': 'Jalan Utama',
'bandar': 'Venice',
}
}'
;

Rootobject myObject = JsonConvert.DeserializeObject < Objek akar > ( json ) ;

Console.WriteLine ( 'Nama pertama ialah:' + myObject.firstName ) ;
Console.WriteLine ( 'Nama terakhir ialah:' + myObject.lastName ) ;
Console.WriteLine ( 'Jalannya ialah:' + myObject.address.street ) ;
Console.WriteLine ( 'Bandar itu ialah:' + myObject.address.city ) ;


Console.ReadLine ( ) ;
}
}

Objek akar kelas awam
{
rentetan awam firstName { dapatkan; ditetapkan ; }
rentetan awam Nama akhir { dapatkan; ditetapkan ; }
alamat Alamat awam { dapatkan; ditetapkan ; }
}

Alamat kelas awam
{
jalan rentetan awam { dapatkan; ditetapkan ; }
bandar rentetan awam { dapatkan; ditetapkan ; }
}
}

Kod di atas menunjukkan cara menggunakan Pakej NuGet Newtonsoft.Json kepada deserialisasi a Rentetan JSON ke dalam kelas C# . Rentetan JSON terdiri daripada maklumat tentang nama pertama dan nama keluarga seseorang, serta alamat mereka (jalan dan bandar). Sebagai kelas C#, kelas Rootobject dan Address menetapkan struktur data JSON.

The JsonConvert.DeserializeObject kaedah digunakan untuk menukar rentetan JSON kepada a Objek akar contoh. Data kemudiannya dipaparkan pada konsol dengan mengakses atribut Objek akar dan kelas Alamat. The Console.ReadLine kaedah digunakan untuk menghentikan program sebelum ia ditamatkan.

Pengeluaran

Cara Lain untuk Menukar JSON kepada C#

Anda juga boleh menyalin JSON data ke papan keratan dan gunakan a JSON kepada penjana kelas C# untuk menjana kelas C#. Terdapat beberapa alat dalam talian, seperti Json2CSharp dan QuickType , yang boleh membantu anda menjana kelas C# anda daripada JSON data. Tampalkan JSON data dalam medan yang sesuai dan biarkan alat menjana kelas C# untuk anda. Pendekatan ini mudah dan cepat. Walau bagaimanapun, untuk tujuan pembelajaran, anda mesti mengikuti kaedah pertama.

Kesimpulan

Menukar data JSON kepada kelas C# melibatkan menganalisis JSON data, mencipta kelas C# yang sepadan dan menyahsiri data JSON ke dalam objek kelas C#. Proses ini boleh berguna apabila bekerja dengan JSON data dalam aplikasi C#, menjadikannya lebih mudah untuk membaca, memanipulasi dan menghantar data ke perkhidmatan web atau API. Untuk menterjemah dengan pantas JSON ke C# , anda juga boleh menggunakan beberapa alatan web, seperti Json2CSharp dan QuickType .