オブジェクトを保存したり、後で取得したりするには、オブジェクトの現在の状態を取得する必要があります。これはコーディング時に考慮する必要があります。オブジェクトの状態を出力するためにカスタム コードが追加されます。これを、C# ではオブジェクトを Json 文字列に変換すると呼びます。そして、オブジェクトの種類に関する知識の種類に応じて、オブジェクトのすべてのプロパティに対してコーディングを行う必要があります。オブジェクト型の定義に変更があった場合は、コードを変更する必要があります。また、Newtonsoft の Json.NET ライブラリを利用してオブジェクトを C# の Json に変換し、コードを使用してオブジェクトの文字列の完全な表現を提供します。一行で書かれています。
構文:
Variable variable_name =Newtonsoft.Json.JsonConvert.SerializeObject(parameter);
言及されている例を以下に示します:
オブジェクトの Json 文字列への変換を示す C# プログラム。これは C# でのオブジェクトのシリアル化に他なりません。
コード:
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; //a namespace called Serial is defined namespace Serial { //a class called Data is defined public class Data { //a string variable is defined which can be set or retrieved using get or set method public string Name1 { get; set; } //a list is defined which can be set or retrieved using get or set method public List<int> Ids { get; set; } //a method called Print is defined in which the name and the list is printed public void Print() { Console.WriteLine("The Name is: " + Name1); Console.WriteLine("The Identifiers used are: " + string.Join<int>(",", Ids)); Console.WriteLine(); Console.WriteLine(); } } //a class called check is defined public class Check { //a file path is defined and stored in a string variable const string fPath = @"d:\ex.txt"; //Serialize method is defined in which instances of Json writer and Stream writer classes are defined to write into the file public static void Serialize(object ob) { varserialise = new JsonSerializer(); using (var ns = new StreamWriter(fPath)) using (JsonWriter writer1 = new JsonTextWriter(ns)) { serialise.Serialize(writer1, ob); } } //Deserialize method is defined in which instances of Json text reader and Stream reader classes are defined to read from the file public static object Deserialize(string pa) { varserialise = new JsonSerializer(); using (var ns = new StreamReader(pa)) using (var reader1 = new JsonTextReader(ns)) { return serialise.Deserialize(reader1); } } //main method is called public static void Main(string[] args) { vardat = new Data { Name1 = "ShobhaShivakumar", Ids = new List<int>{ 10, 20, 30, 40 } }; Console.WriteLine("Before serialization of the objects, the list of the objects are:"); Console.WriteLine("-------------------------------------------------------------------"); Console.WriteLine(); dat.Print(); Serialize(dat); vardeserialise = Deserialize(fPath); Console.WriteLine("After de-serialization of the object, the objects are:"); Console.WriteLine("---------------------------"); Console.WriteLine(); Console.WriteLine(deserialise); } } }
出力:
説明:
プログラム内での手動シリアル化と Json シリアル化の違いを示す C# プログラム。
コード:
using System; using System.Text; using System.Collections.Generic; //a class called check is defined public class Check { //main method is called public static void Main() { //an instance of the Create request1 class and string builder class is created var request = CreateRequest1(); var output1 = new StringBuilder(); //Since we are using manual serialization here, we have to output the properties manually output1.AppendFormat("The unique ID is: {0}\n", request.UniqueID); output1.AppendFormat("The unique Name is: {0}\n", request.UniqueName); output1.AppendFormat("The unique Surname is: {0}\n", request.UniqueSurname); output1.AppendFormat("The Last Sign In is: {0}\n", request.UniqueLastSignIn); //We need to make use of for loop to output the nested attributes in case of manual serialization output1.AppendFormat("The Attributes are:\n"); foreach (varsh in request.UniqueAttributes) { output1.AppendFormat(" {0}\n", sh); } Console.WriteLine(output1.ToString()); Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(request); //We are using Json serialization to improve the readability Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(request, Newtonsoft.Json.Formatting.Indented)); } //a method called Create request1 is defined public static Req CreateRequest1() { return new Req { UniqueID = 10, UniqueName = "Shobha", UniqueSurname = "Shivakumar", UniqueLastSignIn = DateTime.Now, UniqueAttributes = new List<string> { "Beautiful", "Tall", "Intelligent", "Wise", } }; } //a class called req is created public class Req { public intUniqueID {get;set;} public string UniqueName {get;set;} public string UniqueSurname {get;set;} public DateTimeUniqueLastSignIn {get;set;} public List<string>UniqueAttributes {get;set;} } }
出力:
説明:
以上がオブジェクトを JSON C# に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。