.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C#でJSONを扱う方法。System.Text.Jsonの使い方とは?

C#でJSONを扱う方法。System.Text.Jsonの使い方とは?

  • C#
  • プログラミング言語
公開日時:   更新日時:
C#でJSONを扱う方法。System.Text.Jsonの使い方とは?
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    JSON(JavaScript Object Notation)は、XMLと同様にWebアプリケーションでよく利用されるデータ表現形式です。JSON形式のデータをC#で使用する場合には、シリアライズまたはデシリアライズすることになります。C#のオブジェクトをシリアライズしてJSON形式の文字列を取得することや、JSON形式の文字列をデシリアライズしてC#のオブジェクトを取得することが可能となります。

    プログラマー
    JSON、シリアライズ、デシリアライズ……何だか難しそうな単語がいっぱい出てきているのですが、どういったことが可能なのでしょうか?
    プロジェクト
    リーダー
    シリアライズ、デシリアライズはアプリケーション開発でよく利用します。複雑なデータ構造をひとつの文字列やバイト列で表現する場合には必須ですよ。

    実行環境
    ・Visual Studio Community 2017
    ・.NET Framework 4.6.1

    JSON のシリアル化と逆シリアル化とは?

    まずシリアル化と逆シリアル化について解説します。
    シリアル化(シリアライズ:serialize)とは、プログラミングでオブジェクト化されたデータを、ファイルやストレージに保存したり、ネットワークで送受信したりできるような形に変換することです。

    一方で逆シリアル化(デシリアライズ:deserialize)とは、シリアル化されたデータをプログラミングで扱えるようにオブジェクトの型に復元することをいいます。

    多くのプログラミング言語では、このシリアライズ/デシリアライズを行う仕組みは準備されています。これまでC#でJSON を使用する際には、 Json.NET がよく使われていましたが、.NET Core 3以降ではマイクロソフト公式のSystem.Text.Json を使用することが多くなっています。

    Json.NETはサードパーティのライブラリですので、そちらに依存しないで開発を進められるのは良いことです。今までJson.NETで開発をしていて、System.Text.Jsonに移行するならば、修正が一部必要となってきます。

    System.Text.Jsonを使用する

    それでは早速System.Text.Jsonを利用して、シリアライズとデシリアライズを行っていきましょう。
    .NET Core 3以降の場合では、デフォルトでSystem.Text.Jsonはインストールされています。それ以前のバージョン(例えば.NET Framework 4.6.1)で開発を行う場合には、System.Text.JsonのNuGetパッケージを入れることで使用可能です。

    本記事では.NET Framework 4.6.1を使用し、NuGetからインストールしてサンプルコードの作成を進めます。
    インストール後はプログラム上部で、using System.Text.Json;を実行します。これがないといつまでもビルドエラーは解消されませんので、まず追加しましょう。

    シリアライズ

    シリアライズの結果

    デシリアライズ

    デシリアライズの結果

    Json.NETによるシリアライズの方法

    次にかつて主流でしたJson.NETでのJSONの扱い方も記載しておきます。

    Json.NETの結果

    Json.NETの他にもDataContractJsonSerializerクラスを使ってシリアライズ、デシリアライズを行う方法もあります。参照からSystem.Runtime.Serializationを追加して対応できます。

    プログラマー
    今はSystem.Text.Jsonがメインなのですね。System.Text.Jsonを使って開発していきます。
    プロジェクト
    リーダー
    System.Text.Jsonでこれから開発するのがベストですね。アプリケーションの修正案件では、DataContractJsonSerializerやJson.NETが多く使われると思うので、両方でシリアライズ、デシリアライズの対応ができるようにしておきましょう。

    シリアライズ、デシリアライズはできるように

    Webアプリケーションの開発を行う場合は、JSONを利用してのシリアライズ、デシリアライズは本当によく使用します。複雑なデータ構造を持っている場合には、クライアントとサーバーサイドでJSONを使ってやり取りするのが一般的です。
    今回はC#で解説を行いましたが、もちろんVB.NETでもSystem.Text.Jsonは利用できますので、使い方は早めにマスターして、Webアプリケーションの構築の際には積極的に活用していきましょう。

    >>>C#の案件を探すならFEnet .NET Navi

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    C#新着案件New Job