JSONはデータ形式の一つです。
連想配列が並んで入ってるイメージ。
書き方
1 2 3 4 5 6 7 8 9 |
[ {"キー1" : "値1-1" , "キー2" : "値2-1" , "キー3" : "値3-1"}, //配列なので{},{}間にカンマがある {"キー1" : "値1-2" , "キー2" : "値2-2" , "キー3" : "値3-2"}, {"キー1" : "値1-3" , "キー2" : "値2-3" , "キー3" : "値3-3"} ] //[]は配列という意味、値の中に書くことも可能 {"キー1" : "値1-1" , "キー2" : [{"キー1" : "値1" , "キー2" : "値2"},{"キー1" : "値3" , "キー2" : "値4"}] |
JSON形式の変換について
JSON形式に変換する際、構造体やクラスで型を決めてから変換することが多いのでそこに疑問がありました。
連想配列に一発で変換すれば楽で速いのに、と思ったのでAIさんに聞いてみた↓
**JSONは「連想配列に似ている」**のは確かですが、
厳密には「データ交換フォーマット」であり、
型や構造が決まっているため、
プログラム言語ごとに「連想配列」や「オブジェクト」などに変換して使います。
連想配列との違い
- JSONは文字列で表現されたデータ構造(例:
{"key": "value"}
)。 - 連想配列はプログラム言語(PHP, JavaScript, Swiftなど)で使う「データ型」の一つ。
なぜJSONをそのまま連想配列にしないのか?
- 言語ごとに型が違う
例えばPHPの連想配列、JavaScriptのオブジェクト、SwiftのDictionaryは微妙に仕様が異なる。 - データの受け渡しには文字列が必要
ネットワークやファイルでやり取りする時は「文字列」として送る必要がある(連想配列はプログラム内の構造体)。 - パース(変換)処理が必要
受け取ったJSON文字列を、各言語の連想配列やオブジェクトに「変換」して使う。
まとめ
- JSONは交換用の文字列フォーマット
- 連想配列はプログラム内のデータ型
- 直接連想配列にできないので、パース処理が必要
このため、JSONをそのまま連想配列として扱うことはできず、
「一度パースして」各言語の連想配列やオブジェクトに変換して使います。
コメント