C#で無料で使える、高速・簡単なJSONのライブラリ「NewtonSoft Json.NET」を紹介します。Json.NETは、MITライセンスで商用も無料。世界中で大人気のJSONライブラリです。
Newtonsoft Json.NETとは
簡単に言うと、C#で使えるJSONのライブラリです。
オープンソースのためGithubでコードも公開されており、Nugetでのダウンロード数は43億回と、全ライブラリの中でダントツ1位のダウンロード数を誇ります。
公式HP | https://www.newtonsoft.com/json |
GitHubページ | https://github.com/JamesNK/Newtonsoft.Json |
ライセンス | MIT(商用フリー) |
GitHub Star | 10.5k |
Nuget DL数 | 4.3 Billion |
バージョン | 13.0.3 (安定Ver.) |
※ DL数などは、2024年4月現在の値です。
Json.NETの特徴
Json.NETの特徴として、以下の3点があげられます。ひとつずつ解説していきます。
- 高速
- 使いやすい
- 世界中で大人気
① 高速
C#組み込みのJSONライブラリと比較して、超高速に動作します。公式HPでは以下のように紹介されています。
- 「DataContractJsonSerializer」より50%高速
- 「JavaScriptSerializer」 より250%高速
② 使いやすい
使い方もとてもシンプルです。JSONのシリアライズ・デシリアライズ、LINQからのJSONへの変換、XMLからJSONへのコンバートにも対応しています。
③ 世界中で大人気
世界中で大人気のライブラリです。
Nugetのダウンロードランキングでは不動の1位。ダウンロード数も43億回とダントツの回数を誇り、世界中で大人気のライブラリとなっています。
上記のようにユーザー数も多いので、ネットに情報が豊富存在し、公式ドキュメントも充実しているので使い方に悩むことがありません。
サンプルソース
公式サイトのサンプルコードを、コンソールプログラムで使う方法を紹介します。(usingの指定が必要なので、注意してください)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Json.net用に追加します
namespace ConsoleApp1
{
//
// JSONにするデータを作成するためのクラスです
//
public class Product
{
public string Name { get; set; }
public DateTime Expiry { get; set; }
public IList<string> Sizes { get; set; }
}
internal class Program
{
static void Main(string[] args)
{
// JSONにする元データを作ります。
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };
// 元データからJSONを作ります。
string json = JsonConvert.SerializeObject(product,Formatting.Indented);
// JSONを出力します。
Console.WriteLine(json);
Console.ReadLine();
}
}
}
実行結果
上記コードの実行結果です。上記の様に簡単なコードを書くだけで、クラス化したオブジェクトデータから、簡単にJSONデータを作ることが出来ます。
まとめ
C#で超人気の「Newtonsoft Json.NET」について紹介しました。JSON形式のデータを扱いたい方の参考になればうれしいです。
お知らせ
今月号のSoftware Designは「もっとTypeScriptの力を引き出そう」
JavaScriptの拡張言語でしょ?と思っているかたへ、Union型などTypeScriptの持つ秘めたる力を解説する特集となっています。
個人的には第2特集の「Ubuntuの現代的な使い方」がの方が気になりました。より詳しい内容は以下のリンクからご覧ください。
もっと詳しくJson.NETを知る
もう少し詳しく知りたい!というかた向けに、シリアライズ・デシリアライズの方法などを、もう少し詳しく解説した記事も作成しています。興味のある方は以下の記事も合わせてご覧ください。
JSONファイルの読み込み・デシリアライズの方法
JSon.NETのインストール方法
JSONファイルの作成方法
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。