joppot

コピペで絶対動く。説明を妥協しない

プログラミング

javascriptでのJSONの大きさ(サイズ)の取得

投稿日:2014年2月21日 更新日:


feaw

概要

みなさんこんにちは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が簡単な構造だからサイズが取得できましたが、入れ子構造になった時は恐らく、これほど簡単に取得はできないでしょう。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-プログラミング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

PEARのDBライブラリのインストールと使い方

概要 みなさんこんにちはcandleです。PEARには複数の便利なライブラリがあります。 その中の1つに実はもう古くなってあまり推奨されていませんが、データベースにつないだり、データベースの値を取得す …

railsのrakeで作成したmigrationファイルとstatus履歴を削除する

概要 みなさんこんにちはcandleです。今回はrakeコマンドで作成したマイグレーションファイルの管理を紹介します。rakeコマンドを使っていると、よくよく考えれば必要の無いファイルがある。とか重複 …

Rails pluginを使ったgemの作り方[3](vendor/assets 読み込み編)

概要 みなさんこんにちはcandleです。今回はgemでvendorを作成し、それをrailsアプリケーション側で読み込ませる為の方法を紹介します。 よく、gemをインストールすると「app/asse …

pythonのfabricでファイルを分割しfabfileに読み込む方法

概要 皆さんこんにちはcandleです。今回はfabricで分割したpythonファイルを読み込んでみましょう。 fabricはfabfile.pyというファイルに実行したいコマンドを書くのですが、 …

railsのfluent-loggerとdevise gemを使ってユーザーの行動をfluentdサーバに収集する

概要 fluentdと言えば、ビックデータで扱うようなデータを集め出力するサーバですが、これとrailsのfluent-logger gemとdevise gemを組み合わせてユーザーの行動ログをとっ …

  • English
  • 日本語

ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー