プロが教える店舗&オフィスのセキュリティ対策術

javascriptでdata.txtのJSONデータを変数に取得するかんたんなサンプルコードはどのようになるのでしょうか。


JSONデータは以下と同じです。
http://www.openspc2.org/JavaScript/Ajax/Ajax_stu …
{"item":[
{"itemCode":91,
"itemName":"塩ラーメン",
"itemPrice":300},

{"itemCode":94,
"itemName":"味噌ラーメン",
"itemPrice":290},

{"itemCode":95,
"itemName":"豚骨ラーメン",
"itemPrice":320}
]
}

A 回答 (4件)

javascript自体をあまり理解されてないみたいですね。


そんなあなたに、お勧めのJSONの使い方は、
最初からdata.txtの中身を
ITEM={"item":[
{"itemCode":91,
"itemName":"塩ラーメン",
"itemPrice":300},
{"itemCode":94,
"itemName":"味噌ラーメン",
"itemPrice":290},
{"itemCode":95,
"itemName":"豚骨ラーメン",
"itemPrice":320}
]
};
と作っておきなさい。(UTF-8で保存しましょう)
そおすれば
<script type='text/javascript' src="data.txt" charset="UTF-8"></script>
で読み込んで、
for(var i=0;i<ITEM.item.length;i++){
alert(ITEM.item[i].itemCode);
alert(ITEM.item[i].itemName);
alert(ITEM.item[i].itemPrice);
}
のようにアクセス出来る事が出来るでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2010/06/24 22:33

eval() 以外でJSONテキストをパースする方法としては、JSON.parse() があります。


ECMA-262, Edition 5規定ですが、json2.js を利用すれば未実装のブラウザにも対応できます。

--------------
<script type="text/javascript" src="./json2.js"></script>
<script type="text/javascript"><!--
function loadItems (doc) {
 var jsonString = '{"item":[ {"itemCode":91, "itemName":"塩ラーメン", "itemPrice":300}, {"itemCode":94, "itemName":"味噌ラーメン", "itemPrice":290}, {"itemCode":95, "itemName":"豚骨ラーメン", "itemPrice":320} ] }',
   jsonObject = JSON.parse (jsonString),
   items = jsonObject.item,
   table = doc.createElement ('table'),
   caption = doc.createElement ('caption'),
   tr = doc.createElement ('tr'),
   th = doc.createElement ('th'),
   td = doc.createElement ('td'),
   i, l;

 caption.appendChild(doc.createTextNode('商品一覧'));
 table.appendChild(caption);

 for (i=0,l=items.length; i<l; i++) {
  tr = doc.createElement('tr');
  for (j in items[i]) {
   td = doc.createElement ('td');
   td.appendChild (doc.createTextNode (items[i][j]));
   tr.appendChild (td);
  }
  table.appendChild (tr);
 }
 doc.getElementsByTagName('body').item(0).appendChild(table);

}
//--></script>
</head>
<body onload="loadItems (event.target || this.document);">
--------------

Using native JSON - MDC
https://developer.mozilla.org/En/Using_native_JSON
JSON in JavaScript (json2.js)
http://www.json.org/js.html
ECMA-262, Edition 5
http://www.ecma-international.org/publications/s …

[鏡] 入門 JSON -- 戯れ言++
http://www.baldanders.info/spiegel/remark/archiv …
[鏡] 入門 JSON 2 -- 戯れ言++
http://www.baldanders.info/spiegel/remark/archiv …
json2.jsを使ってみる
http://semantics932.hp.infoseek.co.jp/JavaScript …
    • good
    • 0
この回答へのお礼

ちょうど http://www.json.org/js.html を読んでる途中でした。
的確なご解答、ありがとうございます。

お礼日時:2010/06/24 22:31

おお! よく見れば、ご提示のサイトにサンプルがそのまま載ってる(●スクリプトの所)


じゃないですか。

どこが、わからないんですか?

この回答への補足

質問の仕方がまずかったですね。すみません。

具体例としては、
var mytext = "data.txt";
var myobject = eval("(" + mytext + ")");
としても、myobjectはnullのままです。
このコードの間違いを指摘していただきたいのですが・・・
evalが相対パス指定が駄目なら、eval以外を使ったコードを知りたいです。

補足日時:2010/06/24 15:31
    • good
    • 0

jsonテキストを2重に()に入れてevalします。


json = eval("("+jsonstr+")");

この回答への補足

jsonstrって、
jsonstr="..." とjsonのデータをハードコーディングですよね。
それを
jsonstr="data.txt"
で読み込みたいのですが、こちらでテストしても出来ないんですよね。

具体例としては、
var mytext = "data.txt";
var myobject = eval("(" + mytext + ")");
としても、myobjectはnullのままです。
このコードの間違いを指摘していただきたいのですが・・・

補足日時:2010/06/24 15:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!