Looking for json.net Answers? Try Ask4KnowledgeBase
Looking for json.net Keywords? Try Ask4Keywords

json.netjson.netを使い始める


備考

[Json.NET] [1]は、.NET向けに人気の高い高性能JSONフレームワークです。これは、 .NETアセンブリで、jsonデータで一般的なタスクを実行するのに役立つさまざまなクラスとメソッドを公開しています。

これには、JSONデータをクラスインスタンス、データファイルにシリアル化すること、APIエンドポイントや.jsonデータファイルなどのさまざまなソースから来る可能性のあるjsonデータをデシリアライズすることなどが含まれます。

バージョン

バージョン発売日
Json.NET 9.0.1(現在のバージョン) 2016年6月22日
Json.NET 8.0.3 2016-03-14
Json.NET 8.0.2 2016-01-09
Json.NET 8.0.1 2015-12-29
Json.NET 7.0.1 2015-06-22
Json.NET 6.0.8 2015-01-11
Json.NET 6.0.7 2014年12月23日
Json.NET 6.0.6 2014-10-24
Json.NET 6.0.5 2014-09-06
Json.NET 6.0.4 2014-08-03
Json.NET 6.0.3 2014-04-27
Json.NET 6.0.2 2014-03-30
Json.NET 6.0.1 2014-02-01
Json.NET 5.0.8 2013年10月17日
Json.NET 5.0.7 2013年10月14日
Json.NET 5.0.6 2013-06-06
Json.NET 5.0.5 2013-05-08
Json.NET 5.0.4 2013-04-25
Json.NET 5.0.3 2013-04-14
Json.NET 5.0.2 2013-04-08
Json.NET 5.0.1 2013-04-07
Json.NET 4.5.11 2012-11-20
Json.NET 4.5.10 2012-10-07
Json.NET 4.5.9 2012-09-08
Json.NET 4.5.8 2012-08-04
Json.NET 4.5.7 2012-06-09
Json.NET 4.5.6 2012-05-30
Json.NET 4.5.5 2012-05-08
Json.NET 4.5.4 2012-04-24
Json.NET 4.5.3 2012-04-13
Json.NET 4.5.2 2012-04-11
Json.NET 4.5.1 2012-03-20
Json.NET 4.0.8 2012-02-12
Json.NET 4.0.7 2012-01-24
Json.NET 4.0.6 2012-01-23
Json.NET 4.0.5 2011年12月10日
Json.NET 4.0.4 2011-11-19
Json.NET 4.0.3 2011年10月2日
Json.NET 4.0.2 2011-04-23
Json.NET 4.0.1 2011-04-22
Json.NET 3.5.8 2011-01-08

C#でJson.Netを使用してオブジェクトにJSONデータを非直列化する方法

次の例は、Object(つまり、クラスのインスタンス)にJSON文字列をデシリアライズする方法を示しています。

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
                    
public class Program
{
    public class Employee
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public bool IsManager { get; set; }
        public DateTime JoinedDate { get; set; }
        public IList<string> Titles { get; set; }
    }
    
    public static void Main()
    {
        string json = @"{
                          'FirstName': 'Shiva',
                          'LastName': 'Kumar',
                          'IsManager': true,
                          'JoinedDate': '2014-02-10T00:00:00Z',
                          'Titles': [
                            'Sr. Software Engineer',
                            'Applications Architect'
                          ]
                        }";
        
        Employee employee = JsonConvert.DeserializeObject<Employee>(json);

        Console.WriteLine(employee.FirstName);
        Console.WriteLine(employee.LastName);
        Console.WriteLine(employee.JoinedDate);
        foreach (string title in employee.Titles)
        {
            Console.WriteLine("  {0}", title);    
        }
    }
}
 

このコンソールプログラムを実行すると、さまざまなConsole.WriteLine ステートメントの出力は次のようになります。

Shiva
Kumar
2/10/2014 12:00:00 AM
  Sr. Software Engineer
  Applications Architect
 

いくつか注意するべきこと

  1. 次の行は、JSON文字列内のデータをEmployee クラスのemployee オブジェクトインスタンスに実際に非直列化します。

Employee employee = JsonConvert.DeserializeObject<Employee>(json);

  1. employee.TitlesList<string> 型なので、 foreach ループ構文を使用して、そのList 内の各項目をループします。

Visual StudioプロジェクトにJson.Netをインストールする方法

Visual StudioプロジェクトにJson.Netをインストールするには、2つの方法のうちの1つを使用します。

パッケージマネージャコンソールを使用してJson.Netをインストールします。

  1. Visual StudioでPackage Manager Consoleウィンドウを開くか、Quick Launchボックスにpackage manager consoleと入力してパッケージを選択します

ここに画像の説明を入力

[ 表示] - [ その他のWindows] - [ パッケージマネージャーコンソール ]をクリックします

  1. Package Manager Consoleが表示されたら、Json.Netをインストールするソリューション内のプロジェクトをDefault Projectドロップダウンから選択して選択します。

ここに画像の説明を入力

  1. 次のコマンドを入力し、Enterキーを押します。

Install-Package Newtonsoft.Json

  1. これにより、Json.Netの最新バージョンがインストールされます。パッケージマネージャコンソールにインストールの進行状況が表示されます。成功すると、選択したプロジェクトに正常にインストールされたというメッセージが表示されます。

ここに画像の説明を入力

  1. インストールが完了すると、選択したプロジェクトの参照にJson.Netアセンブリが表示されます。 Json.Netアセンブリの名前はNewtonsoft.Json

ここに画像の説明を入力

Json.Netはあなたのプロジェクトで使用できるようになりました!

Visual Studioソリューションエクスプローラを使用してJson.Netをインストールします。

Visual Studioのソリューションエクスプローラを使用してjson.netをインストールすることもできます。

  1. プロジェクトの参照ノードを右クリックし、[ Manage Nuget Packages ... ]をクリックします

  2. Nuget Package Managerダイアログボックスで、左ペインでオンラインが選択されていることを確認します。 右上の検索ボックスに「 Json.Net」と入力します。これにより、検索結果ウィンドウの中央にJson.Net Nuget Packageが表示されます。

  3. インストールボタンをクリックします。

ここに画像の説明を入力

  1. 進行状況ウィンドウにインストールの進捗状況が表示されます。

ここに画像の説明を入力

  1. インストールが完了すると、 Nuget Package ManagerダイアログボックスのJson.Netパッケージの横に緑色のチェックマークが表示されます。

ここに画像の説明を入力

  1. また、選択したプロジェクトのソリューションエクスプローラの参照ノードにNewtonsoft.Json アセンブリが表示されます。

ここに画像の説明を入力

これで、Json.Netのインストールは完了です。プロジェクトでこれを使用して、jsonデータに対してさまざまな操作を実行する準備が整いました。

C#でJson.Netを使用してオブジェクトをJSONにシリアル化する方法

次の例は、Json.Netを使用してC#オブジェクトのインスタンス内のデータをJSON文字列にシリアル化する方法を示しています。

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public bool IsManager { get; set; }
    public DateTime JoinedDate { get; set; }
    public IList<string> Titles { get; set; }
}
                    
public class Program
{
    public static void Main()
    {
        Employee employee = new Employee
        {
            FirstName = "Shiva",
            LastName = "Kumar",            
            IsManager = true,
            JoinedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc),
            Titles = new List<string>
            {
                "Sr. Software Engineer",
                "Applications Architect"
            }
        };

        string json = JsonConvert.SerializeObject(employee, Formatting.Indented);


Console.WriteLine(json);
        
    }
}
 

このコンソールプログラムを実行すると、 Console.WriteLine(json) 出力は次のようになります。

{
  "FirstName": "Shiva",
  "LastName": "Kumar",
  "IsManager": true,
  "JoinedDate": "2013-01-20T00:00:00Z",
  "Titles": [
    "Sr. Software Engineer",
    "Applications Architect"
  ]
}
 

いくつか注意するべきこと

  1. 次の行は、 employee クラスインスタンス内のデータをJSON文字列に実際にシリアル化します

    string json = JsonConvert.SerializeObject(employee, Formatting.Indented);

  2. パラメータFormatting.Indented は、Json.Netにインデントと改行でデータをシリアル化するよう指示します。そうしないと、シリアライズされた文字列はインデントや改行がない長い文字列になります。