ホームページ  >  記事  >  バックエンド開発  >  C# の JSON パーサー

C# の JSON パーサー

PHPz
PHPzオリジナル
2024-09-03 15:33:301003ブラウズ

JSON (JavaScript Object Notation) 解析は言語に依存せず、軽量のデータ交換形式で、自己記述型で理解しやすいです。 JSON パーサーは XML の代替手段です。これはオブジェクトを構造テキスト形式で表し、データはキーと値のペアで保存されます。 JSON ファイル名の拡張子は .json です。 JSON クラスを使用すると、オブジェクトを JSON テキストにシリアル化したり、JSON テキストをオブジェクトに逆シリアル化したりできます。 UTF-8 のサポートが組み込まれています。

構文:

次のような JSON (JavaScript Object Notation) の構文を見てみましょう。

  • Jobject.Parse() メソッドはオブジェクト クラスのメソッドであり、このメソッドは JSON 文字列を C# のオブジェクトに解析するために使用されます。キー値に基づいて文字列のデータを解析し、キー値を使用してデータを取得します。 parse メソッドの構文は次のとおりです。
Jobject.Parse(jsonStringName);
  • JSON 文字列を解析するもう 1 つの方法は、JsonConvert クラスに属する JsonConvert.DeserializeObject() を使用することです。以下の構文を見てみましょう。
JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
  • JavaScriptSerialize() を使用して JSON 文字列を解析します。 De-serialize () メソッド。このメソッドは .NET の最新バージョンにのみ適用されます。以下の構文を見てみましょう
JavaScriptSerializer(). Deserialize<CustomClassName>(jsonString);

JSON パーサーは C# でどのように機能しますか?

JSON (JavaScript Object Notation) は軽量のデータ交換形式であり、人間による書き込みと読み取りが簡単で、マシンによって解析および生成されます。これにより、高いパフォーマンスが得られ、メモリ領域の割り当てが少なくなります。 JSON 文字列形式でクライアント側からサーバー側にデータを提供するためのサードパーティ コントロールが多数あり、データにアクセスするには、JSON 文字列を適切なオブジェクトにキャストすることが不可欠です。Kendo UI グリッドなどのサードパーティ コントロールは、等々。これには、UTF-8 のサポートが組み込まれています。
Jobject.Parse() メソッドはオブジェクト クラスのメソッドであり、このメソッドは JSON 文字列を C# のオブジェクトに解析するために使用されます。キー値に基づいて文字列のデータを解析し、キー値を使用してデータを取得します。以下の JSON 解析形式と作業フローを見てみましょう。

{
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);

このようにして、データを取得できます。

JSON 文字列を解析するもう 1 つの方法は、JsonConvert クラスに属する JsonConvert.DeserializeObject() を使用する方法です。JsonConvert.DeserializeObject() というメソッドは、JSON 文字列を C# オブジェクトに変換します。 JSON 文字列によってこれらのオブジェクトが作成されます。このメソッドで使用される形式は次のとおりです。

JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);

属性 First_Name と Last_Name を持つ UserDetails というクラスを作成し、以下に示す JSON 形式でデータを入力し、この関数の結果を受け取ります。

var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";

この方法でデータを変換するには、次のようにします。

var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);

JavaScriptSerialize() を使用して JSON 文字列を解析するには。 De-serialize () メソッドは、.NET の新しいバージョンにのみ適用されます。この方法は以前のバージョンには適用されません。そのために、最初の 2 つのメソッドを使用して JSON 文字列を C# オブジェクトに変換できます。このメソッドで使用される形式は次のとおりです。

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

JSON から C# オブジェクトへの変換のためにユーザーの詳細を次のように入力するには、

var input_json = @"{""name"":""Peter Paul"",""age"":49}";

次のように、serializer() メソッドを使用して json を C# オブジェクトに変換するには、

var resultObject = new JavaScriptSerializer().Deserialize<UserDetails>(input_json);

.NET Framework は、DataContractJsonSerializer で使用するクラスを使用して、逆シリアル化および JSON へのシリアル化を行うクラスをサポートしています。以下のコードを使用すると、JSON オブジェクトを逆シリアル化できます。このメソッドを使用するには、次のようないくつかの手順を実行する必要があります。

アプリケーションには System.Runtime.Serialization ライブラリの参照が必要です。

クラス全体に DataContract が必要で、属性には DataMember 属性が必要です。

[DataContract]
public class USerDetails
{
[DataMember]
public string First_Name {
get; set;
}
[DataMember]
public string Last_Name {
get; set;
}
}
  • オブジェクトをシリアル化するには WriteObject メソッドを使用し、JSON オブジェクトをシリアル化解除するには ReadObject メソッドを使用する必要があります。
string get_json = "{ \"First_Name\":\"Smith\",\"LastName\":\"Rio\" }";

DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(USerDetails));

Json.NET は作業環境に最適なフレームワークです。ネット。 JSON には次のような多くの利点と機能があります。

  • これは、.NET オブジェクトと JSON の間の JSON シリアライザーの柔軟な変換です。
  • LINQ to JSON の JSON の書き込みと読み取りのマニュアルがあります
  • .NET よりも高速に動作し、高性能データを備えた JSON シリアライザーが組み込まれています。
  • JSON を読みやすく、インデントして書きやすい。
  • JSON と XML 間の変換は簡単です。

プログラム #1

Jobject.Parse() メソッドはオブジェクト クラスのメソッドであり、このメソッドは JSON 文字列を C# のオブジェクトに解析するために使用されます。キー値に基づいて文字列のデータを解析し、キー値を使用してデータを取得します。以下の JSON 解析実装を見てみましょう。

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"], "."));
}
}
}

出力:

C# の JSON パーサー

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, "."));
}
}
}

Output:

C# の JSON パーサー

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.

以上がC# の JSON パーサーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。