まず、JSONについては以下のページが参考になるかと思います。
JSONは基本的に以下のようなフォーマットで提供されます。
例: サンプルJSON(Object)
{ "hoge": "fuga" }
このJSONの場合、JavaScriptのJSON.parse(string)などで解釈させると、Objectとして認識できます。
ただし、Objectの他にArrayとしてもJSONを書くこともできるので注意が必要です。
例: サンプルJSON(Array)
[ "hoge", "fuga" ]
このJSONの場合、JavaScriptのJSON.parse(string)などで解釈させると、Arrayとして認識できます。
つまり、単純にJSONと言ってもパース後にObjectになるのかArrayになるのか注意が必要ですね。
RESTfulなAPIを利用する場合、しっかりとフォーマットを確認することが重要です。
また、APIを設計する場合もこの辺りはしっかりとレスポンスのフォーマットを定義しておく必要がありますね。
余談ですが、派生としてJSONLというフォーマットもあります。
こちらは1行に1つの完結したJSONが格納されるもので、複数のJSONを改行コード区切りで持つことができます。
JSONでは構造の中で改行コードを特に気にしませんが、こちらでは各行に格納されるそれぞれのJSONの中に改行コードを含めてはいけません。
そして、この書式の場合はJSON.parse(string)では一発では変換できませんのでご注意を。
例: サンプルJSONP
{"hoge": "fuga"} {"foo": "bar"}
例: JSONLでの値の取り出しサンプル(JavaScript)
var jsonl = '{"hoge": "fuga"}' + "\n" + '{"foo": "bar"}'; var jsons = jsonl.split("\n").map(function(line){ return JSON.parse(line); });
※ 改行コードに注意