概要
みなさんこんにちはcandleです。今回はプログラミングで少し手間取ったJSONサイズ取得の問題について書いていこうと思います。
JSONはjavascirptでわりと多く使われるオブジェクト型です。
JSONオブジェクトにどれくらいのデータが入っているか取得する方法が分かりませんでした。
調べていくうちに、Stack Overflowに上がっていたのを見て解決しました。
サンプルソース
下のソースコードをもとにJSONのサイズを取得し表示します。
ファイル名は「showjsonsize.html」としました。
ちなみに、間違った取得の方法も書いてあります。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jsonのサイズを確認</title> </head> <body> <script src="https://code.jquery.com/jquery.js"></script> <script> //JSONオブジェクトを作成 var data={"0":"black","1":"white","2":"red","3":"blue"}; //JSONからwhiteを取得 console.log(data["1"]); //配列の大きさを求める方法でJSONの大きさを求めてみる console.log("この結果はlengthを使った結果です。=> "+data.length); //JQueryのsize関数を使ってみる console.log("この結果はsize()を使った結果です。=> "+$(data).size()); //JSONのサイズを表示する console.log("この結果はObject.keysを使った結果です。=> "+Object.keys(data).length); </script> </body> </html>
JSONのサイズを取得する
JSONのサイズを取得する一般式は下の書き方です。
Object.keys(JSONオブジェクト).length
サンプルソースをもとに説明します。dataというJSONオブジェクトは4つのデータが入っています。
var data={"0":"black","1":"white","2":"red","3":"blue"};
故に、下の様に書けば、dataのサイズ4が取得できるはずです。
Object.keys(data).length;
ブラウザで確認すると無事に4と表示されました。
上2つはlengthとJQueryのsizeを使った間違った取得のやり方です。
まとめ
今回はJSONが簡単な構造だからサイズが取得できましたが、入れ子構造になった時は恐らく、これほど簡単に取得はできないでしょう。