C# で JSON を逆シリアル化する
Muhammad Zeeshan
2023年10月12日
C# での逆シリアル化とは、シリアル化されたオブジェクトを取得してメモリにロードできるようにすることです。 その後、オブジェクトを再び使用できるようにします。 最後に、属性などを設定することで、オブジェクトの以前の状態を復活させます。
このチュートリアルでは、C# プログラミング言語を使用して JSON オブジェクトを逆シリアル化する方法について説明します。
C#
で JSON をデシリアライズする
C# プログラミング言語を使用して JSON オブジェクトを逆シリアル化する例を見てみましょう。 以下の例では、学生のデータを使用して、C# で JSON を逆シリアル化します。 ただし、最初に、次の例を段階的に見ていきましょう。
-
まず、次のライブラリをインポートする必要があります。
using System; using System.Collections.Generic; using System.Web; using System.Web.Script.Serialization; using Newtonsoft.Json; using System.Linq; using System.Text; using System.Threading.Tasks;
-
生徒の情報を保持する
Student
構造体を作成する必要があります。たとえば、次のようにStudentid
とStudentname
を作成します。public class Students { public List<studentinfo> MyStudents { get; set; } } public class studentinfo { public string Studentid { get; set; } public string Studentname { get; set; } }
-
次に、JSON リストを作成し、ランダムな生徒のデータを使用して入力します。
string json = @"{""MyStudents"":[ {""Studentid"":""3227"",""Studentname"":""Muhammad Zeeshan""}, {""Studentid"":""3256"",""Studentname"":""Haseeb Khan""}, {""Studentid"":""3241"",""Studentname"":""Saad Ashrafi""}, {""Studentid"":""3267"",""Studentname"":""Bawa Khan""} ]}";
-
次に、
.Deserialize()
関数を使用してリストを逆シリアル化します。Students derializedStudent = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Students>(json);
-
最後に、
foreach
ループを使用してコンソールに結果を表示します。foreach (var item in derializedStudent.MyStudents) { Console.WriteLine("id: {0}, name: {1}", item.Studentid, item.Studentname); }
完全なソース コードを以下に示します。
完全なソース コード
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DeserializeJSONbyZeeshan {
class Program {
static void Main(string[] args) {
string json =
@"{""MyStudents"":[
{""Studentid"":""3227"",""Studentname"":""Muhammad Zeeshan""},
{""Studentid"":""3256"",""Studentname"":""Haseeb Khan""},
{""Studentid"":""3241"",""Studentname"":""Saad Ashrafi""},
{""Studentid"":""3267"",""Studentname"":""Bawa Khan""}
]}";
Students derializedStudent =
new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Students>(json);
foreach (var item in derializedStudent.MyStudents) {
Console.WriteLine("id: {0}, name: {1}", item.Studentid, item.Studentname);
}
}
}
}
public class Students {
public List<studentinfo> MyStudents { get; set; }
}
public class studentinfo {
public string Studentid { get; set; }
public string Studentname { get; set; }
}
出力:
id: 3227, name: Muhammad Zeeshan
id: 3256, name: Haseeb Khan
id: 3241, name: Saad Ashrafi
id: 3267, name: Bawa Khan
著者: Muhammad Zeeshan
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn