ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

JSON形式で値が無い場合は、どうすればいいのか

JSON形式でファイルを作成しなければならなくなりました。
これまでもJSONでデータを受け渡しした経験はありますが、値が無い場合はどうするのが正しいのか?と疑問が出てきました。

これまでは文字列でしかデータを渡したことがなく、値が無かったら空の文字列("")としていました。
今回は配列でデータを渡さなければならず、

  • 配列に入れるべき値が無い場合は、空の配列として表現するのか?

という疑問とともに、

  • そもそも文字列でも値が無かったら、空の文字列("")でよかったのか?

という疑問も出てきました。

JavaScriptをコーディング
unsplash-logoIrvan Smith

nullとするべきなのかも

JSON 空のデータ」などのキーワードで検索して、様々なページを読んだ結果、nullは値が無いことを示すので、設定すべき値が無い場合は、nullとしておけば大丈夫だと理解しました。
www.tohoho-web.com

実際にJSONを書いて試せるページで試してみましたが、エラーになりませんでした。
app.quicktype.io

[
  {
    "greeting": "Welcome to quicktype!",
    "instructions": [
      "Type or paste JSON here",
      "Or choose a sample above",
      "quicktype will generate code in your",
      "chosen language to parse the sample data"
    ]
  },
  {
    "greeting": null,
    "instructions": null
  }
]


空文字と空の配列でもエラーにはなりませんでした。

[
  {
    "greeting": "Welcome to quicktype!",
    "instructions": [
      "Type or paste JSON here",
      "Or choose a sample above",
      "quicktype will generate code in your",
      "chosen language to parse the sample data"
    ]
  },
  {
    "greeting": null,
    "instructions": null
  },
  {
    "greeting": "",
    "instructions": []
  }
]

受け取る側で正しく処理できるのならどちらでも良さそうです。
nullにして、設定する値が無いのを明示した方が間違いがないと現在は考えています。