【初心者向け】JSONファイルとは何か?jsonファイルの構造と使い方を実例でわかりやすく解説

json-prograshi(プロぐらし)-kv JSON
記事内に広告が含まれていることがあります。
[PR]

JSONファイルとは何か?

JSONファイルとは、ある決められたフォーマットのテキストファイルのことです。情報に名前(キー)をつけ、階層構造で記述していく形式です。

JavaScript Object Notationの略で、JavaScript用に開発されたものですが、構造がシンプルなため他の言語でも多用されています。


よく使われる場所

システムの設定ファイルや、情報データを保存するときに使われることが多いです。

例えば、「名前:太郎」「年齢:24」といったように、データのキー名(名前や年齢)と実際のデータ(太郎や24)をペアで保存できるため、ユーザー情報の保存で頻繁に使用されます。


JSONファイルの記述ルール

JSONファイルの基本的な記述ルールは以下の5点です。

  • 「”キー名”:”値”」でワンセット
  • 文字列はダブルクオテーションで囲む(キー名も)
    • シングルクオテーション不可
  • 値は①数値、②文字列、③真偽値(小文字)のいずれか
  • ひとまとまりのデータを波カッコ{}で囲む。
  • コメントアウトはありません


基本のデータ構造

{"キー名":"値"}
この形がベースになります。

データは並列並べたり、入れ子にできます。

・例えば、名前(name)が轟さんを保存する場合は、
{"name":"轟"}

・27歳という年齢データも追加すると、
{"name":"轟", "age":"27"}

・新たに、19歳の空条さんを追加する。
{{"name":"轟", "age":"27"}, {"name":"空条", "age":"19"}}

情報をグループ化し、わかりやすく理解できます。


1つのキーに複数のデータを保存する

配列を使うと、一つのキーに対して複数のデータを保存することができます。
{"キー名":[値1, 値2, 値3,,,,]}

値は文字列でも数値でも問題ありません。JSONの記述を入れることもできます。

例えば、轟さんが複数の趣味を持っている場合は以下のようになります。
{"name":"轟", "age":"27","hobby":["aaa", "bbb", "ccc"]}


改行も可能

1行で記述することも改行で記述することもできます。可読性を重視することが多いため、改行で記述されていることが多いです。(パッと見1行と改行したものが全く別物に見えるので、初心者を混乱させます)

実例

{"name":"轟", "age":"27"} 

は以下と同じです。

{
    "name":"轟", 
    "age":"27"
}



{{"name":"轟", "age":"27"}, {"name":"空条", "age":"19"}}
は以下と同じです。

{
    {
        "name":"轟",
         "age":"27"},
    {
        "name":"空条",
        "age":"19"
    }
}



{"name":"轟", "age":"27","hobby":["aaa", "bbb", "ccc"]}
は以下と同じです。

{
    "name":"轟",
     "age":"27",
     "hobby":["aaa", "bbb", "ccc"]
}

改行することで、どういった情報が保存されていて、その塊がいくつあるかが見やすくなります。


値に2次元配列を使う

データの値に2次元配列を使うこともできます。

“hobby”:[“aaa”, “bbb”, “ccc”]を2次元配列にした場合は次のようになります。
配列の中に配列を記述する入れ子構造です。(ネストと呼びます)

{
    "name":"轟",
     "age":"27",
     "hobby":[["aaa", "bbb", "ccc"],[111, 222, 333]]
}

以下と同じ。(値ごとに改行)

{
    "name":"轟",
     "age":"27",
     "hobby":[
         ["aaa", "bbb", "ccc"],
         [111, 222, 333]]
}
{
    "name":"轟",
     "age":"27",
     "hobby":[
                [
                    "aaa",
                    "bbb",
                    "ccc"
                ],
                [
                    111, 
                    222, 
                    333
                ]
            ]
}

あまり改行が多いと見にくいですが、全く同じ内容です。


「”キー名”:”値”」の入れ子(ネスト)

「”キー名”:”値”」の値の部分にJSON形式の「”キー名”:”値”」を入れることもできます。

{"name":"轟", "age":"27"}にJSON形式のデータを持つ子供のデータ
"children":{"name":"Jon", "age":"5", "gender":"male"}

を追加する場合は以下のようになります。

{"name":"轟", "age":"27", "children":{"name":"Jon", "age":"5", "gender":"male"}}
{
    "name":"轟",
     "age":"27", 
     "children":{
             "name":"Jon",
             "age":"5",
             "gender":"male"
            }
}

データの深度に制限はないため、”children”の値の中に更に「”キー名”:”値”」を入れ込むこともできます。

タイトルとURLをコピーしました