1.概要
.netアプリケーションでjsonファイルを扱うことがあります。
そんな時に便利なのが【Newtonsoft.Json】になります。
Jsonとは
JavaScript Object Notationの略で、テキストベースのデータフォーマットになります。
名前にもあるとおり【Javascript】との親和性が高いものになっています。
2.インストールする
NuGetからインストールを行います。
【ツール】→【NuGetパッケージマネージャー】→【ソリューションのNuGetパッケージの管理】をクリックします。
検索ボックスに【json】と入力し
【Newtonsoft.Json】を選択し、インストールします。
3.シリアライズする
・・とはC#のオブジェクトをシリアライズしてJSON形式の文字列を得ることを言います。
以下テストコードになります。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Newtonsoft.Json; namespace jsonTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // シリアライズ処理 var info = new test { Job = "プログラマー", Age = 37, }; string json1 = JsonConvert.SerializeObject(info, Formatting.Indented); Console.WriteLine(json1); } } // シリアライズの対象となるクラスを宣言 public class test { public string Job { get; set; } public int Age { get; set; } } }
結果は下記のとおり
{ "Job": "プログラマー", "Age": 37 }
4.デシリアライズする
・・とはシリアライズの逆でJson形式から元のデータに復元することを言います。
以下テストコードになります。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Newtonsoft.Json; namespace jsonTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // シリアライズ処理 var info = new test { Job = "プログラマー", Age = 37, }; string json1 = JsonConvert.SerializeObject(info, Formatting.Indented); // デシリアライズ処理 test deserial1 = JsonConvert.DeserializeObject<test>(json1); Console.WriteLine(deserial1.Job); Console.WriteLine(deserial1.Age); } } // シリアライズの対象となるクラスを宣言 public class test { public string Job { get; set; } public int Age { get; set; } } }
結果は下記のとおり
プログラマー 37