カテゴリ: VB.NET 更新日: 2026/03/10

VB.NETでJSONファイルを読み書きする方法を完全ガイド!System.Text.Jsonで初心者でも簡単操作

VB.NETでJSONファイルを読み書きする方法(System.Text.Json)
VB.NETでJSONファイルを読み書きする方法(System.Text.Json)

先生と生徒の会話形式で理解しよう

生徒

「先生、最近よく聞くJSON(ジェイソン)っていう形式のファイルを使ってみたいのですが、VB.NETで扱うにはどうすればいいですか?」

先生

「最新のVB.NETならSystem.Text.Jsonという標準の機能を使って、とてもスマートに読み書きができますよ。」

生徒

「難しそうですね。プログラミング初心者で、パソコンにもあまり詳しくない私でも書けるようになりますか?」

先生

「もちろんです!まずはJSONがどんなものかを知るところから始めましょう。手順を追えば、きっとマスターできますよ!」

1. JSONファイルとは何か?

1. JSONファイルとは何か?
1. JSONファイルとは何か?

JSON(ジェイソン)は、インターネットの世界で最も普及しているデータの書き方の一つです。以前はCSV(カンマ区切り)が主流でしたが、今はより複雑なデータを分かりやすく整理できるJSONがよく使われています。

パソコンを触ったことがない方向けに例えると、JSONは「ラベル付きの整理箱」のようなものです。例えば、単に「田中、25」と書くのではなく、「名前:田中、年齢:25」というふうに、項目名(ラベル)と中身(値)をセットにして管理します。これにより、誰が見ても何が書いてあるか一目で分かり、データの追加や変更も非常に楽になります。

2. クラスという設計図を作ろう

2. クラスという設計図を作ろう
2. クラスという設計図を作ろう

VB.NETでJSONを扱う際に最も大切なのが、クラス(Class)という設計図を作ることです。設計図は、プログラムに対して「JSONの中にはどんな項目があるか」を教える役割をします。

例えば、ユーザー情報を扱いたい場合は、「名前」や「年齢」といった項目を持った「ユーザー用の型」をあらかじめ定義しておきます。これを用意しておくことで、JSONという単なるテキストデータを、プログラムが扱いやすい形式に自動的に変換できるようになります。


' ユーザー情報の設計図(クラス)
Public Class UserInfo
    Public Property Name As String
    Public Property Age As Integer
End Class

3. JSONファイルを書き出す(シリアル化)

3. JSONファイルを書き出す(シリアル化)
3. JSONファイルを書き出す(シリアル化)

プログラムの中で作ったデータをJSONファイルとして保存することを、専門用語でシリアル化と言います。これは、バラバラになっている情報を一つの文字列(テキスト)にまとめて、ファイルとして書き出せる形に整える作業のことです。

VB.NETの最新機能である System.Text.Json.JsonSerializer を使うと、驚くほど短いコードでこの作業が完了します。書き出す際は、読みやすいように改行などを入れる設定(オプション)を追加するのが一般的です。


Imports System.Text.Json
Imports System.IO

Module Module1
    Sub Main()
        ' 1. 保存するデータを作成
        Dim user As New UserInfo With {.Name = "田中太郎", .Age = 25}

        ' 2. JSON形式の文字列に変換する(見やすくする設定付き)
        Dim options As New JsonSerializerOptions With {.WriteIndented = True}
        Dim jsonString As String = JsonSerializer.Serialize(user, options)

        ' 3. ファイルとして保存する
        File.WriteAllText("user_data.json", jsonString)

        Console.WriteLine("JSONファイルの書き出しが完了しました!")
    End Sub
End Module

4. JSONファイルを読み込む(逆シリアル化)

4. JSONファイルを読み込む(逆シリアル化)
4. JSONファイルを読み込む(逆シリアル化)

今度は、保存したJSONファイルを読み込んで、プログラムの中で使える形に戻してみましょう。この逆の作業を逆シリアル化と呼びます。テキストデータを読み取り、先ほど作った設計図(クラス)の形に当てはめる作業です。

読み込むときは、ファイルの中身を全部読み取ってから、一気にクラスの形に変換します。これにより、user.Name のように書くだけで、簡単に名前を取り出せるようになります。


' ファイルから読み込む例
Dim loadedJson As String = File.ReadAllText("user_data.json")

' 文字列をUserInfoクラスの形に戻す
Dim loadedUser As UserInfo = JsonSerializer.Deserialize(Of UserInfo)(loadedJson)

' 読み込んだ内容を表示
Console.WriteLine("名前: " & loadedUser.Name)
Console.WriteLine("年齢: " & loadedUser.Age)

5. リスト形式のJSONを扱う方法

5. リスト形式のJSONを扱う方法
5. リスト形式のJSONを扱う方法

一人分だけでなく、複数人のデータをまとめて扱いたいこともあります。その場合はリスト(List)という仕組みを使います。リストは配列と似ていますが、データの数を後から自由に増やせる非常に便利な箱です。

JSONでも [ { ... }, { ... } ] というふうに角括弧を使って複数人をまとめます。これもVB.NETなら、リストの型を指定するだけで簡単に読み書きが可能です。


' 複数人のリストを作成
Dim userList As New List(Of UserInfo)
userList.Add(New UserInfo With {.Name = "鈴木", .Age = 30})
userList.Add(New UserInfo With {.Name = "佐藤", .Age = 22})

' リスト全体をJSONに変換
Dim listJson As String = JsonSerializer.Serialize(userList)

' 保存
File.WriteAllText("users.json", listJson)

6. 日本語が文字化けする場合の対処法

6. 日本語が文字化けする場合の対処法
6. 日本語が文字化けする場合の対処法

JSONファイルを扱う際、日本語が \uXXXX のような謎の記号になってしまうことがあります。これはエスケープ処理と呼ばれ、コンピューターが確実に文字を伝えようとする設定なのですが、人間が見るには不便です。

この文字化けのような現象を防ぐには、エンコーダーの設定を変更します。JavaScriptEncoder.UnsafeRelaxedJsonEscaping という設定を加えることで、日本語をそのまま日本語として保存できるようになります。

7. エラーを防ぐための注意点

7. エラーを防ぐための注意点
7. エラーを防ぐための注意点

JSON操作でよくある失敗は、設計図(クラス)の項目名と、実際のJSONファイルの項目名が一致していないことです。例えば、クラスでは Name と書いているのに、JSONファイル側が full_name になっていると、うまく読み込めません。

また、ファイルを開くときに指定した場所にファイルが存在しないとエラーになります。これを防ぐために、事前に File.Exists を使ってファイルがあるかどうかを確認する癖をつけましょう。小さな注意で、より頑丈なプログラムを作ることができます。

8. JSON操作をマスターするメリット

8. JSON操作をマスターするメリット
8. JSON操作をマスターするメリット

JSONの読み書きができるようになると、自分のプログラムに「設定保存機能」を付けたり、インターネット上の天気予報やニュースなどの最新データを取得して利用したりできるようになります。現代のソフトウェア開発において、JSONは公用語のようなものです。VB.NETの System.Text.Json を使いこなすことは、プログラミングの世界を広げる大きな一歩になります。ぜひ、色々なデータをJSONにして保存してみてくださいね!

関連記事:
カテゴリの一覧へ
新着記事
New1
ASP.NET
IISにASP.NETアプリをデプロイする基本手順を完全ガイド!初心者でもわかる公開方法
New2
VB.NET
VB.NETのFor Eachループを完全マスター!初心者でもわかるコレクション処理の基本
New3
ASP.NET
ASP.NETアプリのデプロイ手順の全体像!初心者でもわかるIIS・Docker・Azure App Service
New4
ASP.NET
ASP.NET MVCでJSONデータを返すAPIの作り方!初心者でもわかるデータ通信入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETの入出力の基本!初心者でもわかるConsole.WriteLine()とConsole.ReadLine()の使い方
No.2
Java&Spring記事人気No2
VB.NET
VB.NETでテキストファイルに書き込む方法を完全解説!WriteAllTextとAppendAllText
No.3
Java&Spring記事人気No3
VB.NET
VB.NETでStaticメソッドを定義する方法と活用例
No.4
Java&Spring記事人気No4
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介
No.5
Java&Spring記事人気No5
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.7
Java&Spring記事人気No7
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用