JSON Parser dalam C#

PHPz
Lepaskan: 2024-09-03 15:33:30
asal
983 orang telah melayarinya

Huraian JSON (JavaScript Object Notation) adalah bebas bahasa, format pertukaran data yang ringan, menerangkan sendiri dan mudah difahami. Penghurai JSON ialah alternatif kepada XML; ia mewakili objek dalam format teks struktur, dan data disimpan dalam pasangan nilai kunci. Sambungan nama fail JSON ialah .json. Kelas JSON membenarkan untuk mensirikan objek ke dalam teks JSON dan menyahsiri teks JSON ke objek; terdapat sokongan terbina dalam UTF-8.

Sintaks:

Mari lihat sintaks untuk JSON (JavaScript Object Notation) seperti berikut,

  • Kaedah Jobject.Parse() ialah kaedah kelas objek dan kaedah ini digunakan untuk menghuraikan rentetan JSON ke dalam objek C#. Berdasarkan nilai kunci, ia menghuraikan data rentetan dan kemudian mendapatkan semula data menggunakan nilai kunci. Untuk kaedah parse, sintaksnya adalah seperti berikut,
Jobject.Parse(jsonStringName);
Salin selepas log masuk
  • Kaedah lain untuk menghuraikan JSON String ialah menggunakan JsonConvert.DeserializeObject(), yang tergolong dalam kelas JsonConvert. Mari lihat sintaks di bawah,
JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
Salin selepas log masuk
Salin selepas log masuk
  • Menghuraikan JSON String menggunakan JavaScriptSerialize(). Kaedah nyahsiri (), kaedah ini hanya digunakan pada versi terkini .NET; mari lihat sintaks di bawah
JavaScriptSerializer(). Deserialize<CustomClassName>(jsonString);
Salin selepas log masuk

Bagaimana penghurai JSON berfungsi dalam C#?

JSON (JavaScript Object Notation) ialah format pertukaran data yang ringan, dan ia mudah ditulis dan dibaca oleh manusia serta dihuraikan serta dijana oleh mesin. Ia menyediakan prestasi tinggi dan kurang peruntukan ruang memori. Terdapat banyak kawalan pihak ketiga untuk membekalkan data dari sisi Klien ke sisi Pelayan dalam format rentetan JSON, dan adalah penting untuk menghantar rentetan JSON ke objek yang sesuai untuk mengakses data, kawalan pihak ketiga seperti grid UI Kendo, dan seterusnya. Dalam hal ini, terdapat sokongan terbina dalam UTF-8.
Kaedah Jobject.Parse() ialah kaedah kelas objek, dan kaedah ini digunakan untuk menghuraikan rentetan JSON ke dalam objek C#. Berdasarkan nilai kunci, ia menghuraikan data rentetan dan mendapatkan semula data menggunakan nilai kunci. Mari lihat format penghuraian JSON dan aliran kerja di bawah,

{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
By using the JSON parsing method we can convert and retrieve as follows,
var getResult = JObject.Parse(jsonString);
Salin selepas log masuk

Dengan cara ini, kami boleh mendapatkan semula data.

Kaedah lain untuk menghuraikan JSON String ialah menggunakan JsonConvert.DeserializeObject(), yang tergolong dalam kelas JsonConvert, kaedah yang dipanggil JsonConvert.DeserializeObject() menukar rentetan JSON kepada objek C#. Rentetan JSON mencipta objek tersebut. Format yang digunakan untuk kaedah ini adalah seperti berikut,

JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
Salin selepas log masuk
Salin selepas log masuk

Buat kelas yang dipanggil UserDetails dengan atribut First_Name dan Last_Name untuk memasukkan data dalam format JSON yang ditunjukkan di bawah untuk menerima hasil fungsi ini.

var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";
Salin selepas log masuk

Untuk menukar data dengan cara ini seperti berikut,

var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);
Salin selepas log masuk

Untuk menghuraikan JSON String menggunakan JavaScriptSerialize(). Kaedah de-serialize () hanya digunakan pada versi .NET yang terkemudian; kaedah ini tidak akan digunakan untuk versi terdahulu; untuk tujuan itu, kita boleh menggunakan dua kaedah pertama untuk menukar rentetan JSON kepada objek C#. Format yang digunakan untuk kaedah ini adalah seperti berikut,

JavaScriptSerializer().Deserialize<CustomClassName>(jsonString);
To create the class with UserDetails as follows,
class UserDetails
{
public string userName { get; set; }
public int userAge { get; set; }
}
Salin selepas log masuk

Untuk memasukkan butiran pengguna bagi penukaran daripada JSON kepada objek c# seperti berikut,

var input_json = @"{""name"":""Peter Paul"",""age"":49}";
Salin selepas log masuk

Untuk menukar json kepada objek c# dengan menggunakan kaedah serializer() di bawah seperti berikut,

var resultObject = new JavaScriptSerializer().Deserialize<UserDetails>(input_json);
Salin selepas log masuk

.NET Framework menyokong kelas untuk menyahsiri dan bersiri kepada JSON menggunakan yang kami gunakan dengan DataContractJsonSerializer. Dengan menggunakan kod di bawah, kami boleh menyahsiri objek JSON; untuk menggunakan kaedah tersebut, kita perlu melakukan beberapa prosedur seperti berikut,

Aplikasi mesti mempunyai rujukan pustaka System.Runtime.Serialization.

Seluruh kelas harus mempunyai DataContract dan atribut mesti mempunyai atribut DataMember.

[DataContract]
public class USerDetails
{
[DataMember]
public string First_Name {
get; set;
}
[DataMember]
public string Last_Name {
get; set;
}
}
Salin selepas log masuk
  • Kita mesti menggunakan kaedah WriteObject untuk mensirikan objek dan kaedah ReadObject untuk menyahsiri objek JSON.
string get_json = "{ \"First_Name\":\"Smith\",\"LastName\":\"Rio\" }";
Salin selepas log masuk

DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(USerDetails));

Json.NET ialah rangka kerja terbaik untuk persekitaran kerja. BERSIH. Terdapat banyak faedah dan ciri JSON, seperti berikut,

  • Ia ialah penukaran fleksibel JSON serializer antara objek .NET dan JSON.
  • Akan ada penulisan manual dan pembacaan JSON LINQ ke JSON
  • Ia berfungsi lebih pantas daripada .NET dan mempunyai penyeri JSON terbina dalam dengan data berprestasi tinggi.
  • Mudah membaca JSON dan menulis inden.
  • Penukaran antara JSON dan XML adalah mudah.

Contoh

Program #1

Kaedah Jobject.Parse() ialah kaedah kelas objek dan kaedah ini digunakan untuk menghuraikan rentetan JSON ke dalam objek C#. Berdasarkan nilai kunci, ia menghuraikan data rentetan dan mendapatkan semula data menggunakan nilai kunci. Mari lihat pelaksanaan penghuraian JSON di bawah,

using System;
using Newtonsoft.Json.Linq;
namespace JSONParsing
{
public class Parsing
{
public static void Main(string[] args)
{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
//Using the JSON-parse method here
var getResult = JObject.Parse(jsonString);
Console.WriteLine("\n\tUsing JSON-Parse Method");
Console.WriteLine(string.Concat("\n\tDisplaying User First and Last Name: ", getResult["user_FirstName"], " " + getResult["user_LastName"], "."));
}
}
}
Salin selepas log masuk

Output:

JSON Parser dalam C#

Program #2

To parse the JSON String using JsonConvert.DeserializeObject(), which belongs to the JsonConvert class, the method called JsonConvert.DeserializeObject() converts the JSON string to the C# object. The JSON string creates those objects.

using System;
using Newtonsoft.Json;
namespace JSONParse_Program
{
public class UserDetails
{
public string First_Name
{
get; set;
}
public string Last_Name
{
get; set;
}
}
public class Parsing
{
public static void Main(string[] args)
{
var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";
//Use of the method
var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);
Console.WriteLine("JSON-Parse Method\n");
Console.WriteLine(string.Concat("\nDisplaying First and Last Name, ", result.First_Name, " " + result.Last_Name, "."));
}
}
}
Salin selepas log masuk

Output:

JSON Parser dalam C#

Conclusion

In this article, I have explained the usage of JSON parser; for example, by using those methods, we can parse the JSON in the C# program and extract values.

Atas ialah kandungan terperinci JSON Parser dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!