このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

JavaScript JSON Ajax JSON.parseとevel関数 スマートフォンUI例

JavaScript

2013.04.07

この記事は最終更新日から1年以上が経過しています。

JSONとは、「JavaScript Object Notation」の略で「ジェイソン」といいます。 JSON は、数値や文字列や配列やオブジェクトなどのデータを、文字列で表現できる軽量なフォーマットであり、XMLと比べると簡潔に構造化されたデータを記述することができるため、人間が理解しやすいデータフォーマットであり、JavaScriptのオブジェクトと文字列の相互変換が柔軟にあつかえます。

それでは早速記述してみましょう。

JSONデータを変換

var str = '{ "ary":[0,1,2], "obj": { "a":0,"b":1,"c":2 } }',
    obj = JSON.parse(str);
    console.log(obj.ary);
console.log(obj.obj);

コンソールで確認してみると、

このようにObjectとして変換させているのが確認出来るかと思います。。

JSON.parse()はJSONフォーマットで作成されている文字列データをオブジェクトに変換してくれるメソッドとなります。

JSON.parse(); 

以前では、JSON.parse()意外にeval()等が用いられていましたが、こちらはセキュリティ上の問題が在るため、使用はしないほうが良いでしょう。

evalは悪魔と覚えていて何ら問題はかと思います。仮に上記の例ですと、

eval("obj = " + str);

でオブジェクトに変換できますが、使用はしないでください。

逆にオブジェクトからJSONフォーマットに変換する際は、

JSON.stringify();

で、JSONフォーマットに変換することが可能です。

var obj = { ary:[0,1,2], obj:{ a:0, b:1, c:2 } };
var str = JSON.stringify(obj);
console.log(str);

コンソールで確認すると変換できているのが確認できます。

また、JSONデータは厳格な部分もあり、文字列はダブルコーテーション「”」で囲わないとエラーが発生しますのでご注意を。

JSON + Ajax

Ajaxとは、簡単に説明しますと、XMLHttpRequest()でオブジェクトを生成し、非同期通信を行う手法です。

詳しくはこちらでもご参照の程を。

JavaScript Ajax XMLHttpRequest

では、XMLHttpRequest オブジェクトを作成しましょう。

今回はIEなどの対応は行いません。

httpObj = new XMLHttpRequest();

オブジェクトの方をコンソールで確認してみます。

console.log(httpObj);

IE 7以前のIEブラウザ以外のブラウザだと作成出来ているかと思います。

XMLHttpRequest オブジェクトが保持する、onloadメソッドとopenメソッドとresponseTextプロパティを使い、JSONデータを受け取りましょう。

では、JSONデータを用意。

test.json

{"item":[
 {
   "itemCode":100,
   "itemName":"ミカン",
   "itemPrice":80
 },
 {
   "itemCode":101,
   "itemName":"リンゴ",
   "itemPrice":100
 },
 {
   "itemCode":102,
   "itemName":"ぶどう",
   "itemPrice":200
 }]
}
httpObj = new XMLHttpRequest();
httpObj.open("get", "./test.json", true);
httpObj.onload = function() {
  var myData = JSON.parse(this.responseText),
      txt = "";
  for (var i=0, il = myData.item.length; i < il; i++) {
    txt = txt + myData.item[i].itemName + ":" + myData.item[i].itemPrice+"円<br>";
  }
  document.getElementById("result").innerHTML = txt;
}
httpObj.send(null);

onloadメソッドで読み込んだ際に関数を実行しております。

先ほどのJSON.parseでmyDataオブジェクトを生成。

変数txtにそれらのデータをデータの文格納して表示させております。

ブラウザ表示

スマートフォンデモ

スマートフォンUIとして、スライドで「シャー」と切り替え、JSONで受け取ったデータを表示させるスマートフォンUIにおける実用的なデモをお送りしようかと思いましたが、

色々と公開できなかったり、できたりとありまして、今回は控えさせて頂きます。大変申し訳ありません。。

近いうちにまた、別の形で公開出来ればと思います。

Comment

Related Article

JavaScriptで、DOMを放り投げる処理

2024.07.27

2022 VIVA JS World Cup 開幕!! 〜 Vue3で作るサッカーゲーム 〜

2022.12.24

OAuthのフローを可視化できるツールを作ってみました。

2020.05.17

令和の時代に、JavaScriptで Shift-JISファイル作成 全銀データフォーマットに対応する。

2020.03.03

インターネットにて世論調査を行う「世論Web」サービスを始めてみました。

2020.01.31

年末のレトロゲーム熱の際、ファミコンソフト一覧パッケージ作ってました。

2020.01.24

あと10日で「jsdo.it」のサービスが終わってしまう!! ソースダウンロードまだの方は急げぇ〜!

2019.10.21

正規表現 先読み後読み 論理積

2019.07.28

「二段階認証?」という方も 5分で覚える パスワードレス WebAuthnのまとめ

2019.07.07

上級者向け JavaScript 問題集 「javascript-questions」日本語翻訳担当してます。

2019.06.22

CATEGORY LIST

LATEST NEWS

Rustでつくる ふっかつのじゅもん

Rust

2025.04.29

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その5

Rust

2025.04.14

う、動くぞ! Mac mini Apple M4 Pro で PS3ソフトを遊ぶ。RPCS3 Mac版を起動

Game

2025.04.12

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その4

Rust

2025.04.10

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その3

Rust

2025.04.08

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その2

Rust

2025.04.07

時代を先取りし過ぎた ニューラルネットワークが導入されたゲーム『がんばれ森川君2号』を令和に嗜んでみる。

Game

2025.04.06

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その1

Rust

2025.04.05

keyring-rsで、Macのキーチェーンに登録する。

Rust

2025.04.04

RustとWebAssemblyによるゲーム開発 Webpack5対応

Rust

2025.03.27

Rustで創る MOS 6502 CPU その3 (Cursorと共に)

Rust

2025.02.24

あけましておめでとうございます(24日経過)

イベント

2025.01.24

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US