重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

今現在下記の記述でJSONを取得しています。

=====
<html>
<head>
<title>JSONのデータを使ってみる</title>
</head>
<script type="text/javascript" src="./prototype.js"></script>
<script type="text/javascript">
function execute() {
var url = './ItemSearch_json.php';
var paramList = "keyword=" + encodeURIComponent("ふくろう");
var a = new Ajax.Request(
url,
{
method: 'get',
parameters: paramList,
onSuccess: function(request) {
// alert('読み込み成功しました');
// jsonの値を処理する場合↓↓
var json;
eval("json="+request.responseText);
},
onComplete: function(request) {
alert('読み込みが完了しました');
$('container').innerHTML = request.responseText;
// jsonの値を処理する場合↓↓
var json;
eval("json="+request.responseText);
},
onFailure: function(request) {
alert('読み込みに失敗しました');
},
onException: function (request) {
alert('読み込み中にエラーが発生しました');
}
}
);
}
</script>
<body>
<div id="container">content</div>
<button onclick="execute()">サンプル実行</button>
</body>
</html>
=====
このままだと、プレーンテキストは表示されるのですが、商品名や価格の一覧などを選択して表示できません。
evalなどを使うのかなと思うのですが、はっきり分かりません。
ヒントを教えていただけないでしょうか。

A 回答 (2件)

提示されたデータが長いので、例として・・・



var str = '{"encoding":"UTF-8","title":"ValueCommerce Product Database Search Results","link":"http://www.valuecommerce.com"}';
eval('var json = '+ str);
alert(json.title);
alert(json['title']);
    • good
    • 0
この回答へのお礼

やはりeval()を使うということですので色々調べ周り、無事解決することができました。

商品名を取り出すのも今回の場合、json.items[i].titleとすることで無事取り出せました。

手伝ってくださって有難うございました。

http://www.iroirojoho.net/pc/json/json02.html

お礼日時:2009/04/23 22:48

eval("json="+request.responseText);


の時の、request.responseTextのデータ構造の提示が必要。

この回答への補足

ご覧下さって有難う御座います。

データ構造は下記の通りです。(商品数1件)
=====
{"encoding":"UTF-8","title":"ValueCommerce Product Database Search Results","link":"http://www.valuecommerce.com","description":"Pro … time: 51 ms","language":"ja","copyright":"Copyright 2009, ValueCommerce Co. Ltd.","keyword":"ふくろう","ecCode":"038p6","adult":"n","resultPerPage":1,"sortBy":"price","sortOrder":"asc","page":1,"resultCount":860,"pageCount":860,"mediaType":"Web","status":"OK","items":[{"title":"ふくろうの家 3 (3) (オフィスユー コミックス)","link":"http://ck.jp.ap.valuecommerce.com/servlet/referr …あまね かずみ 集英社 ASIN:4420150149","guid":"http://www.amazon.jp/dp/4420150149/ref=asc_df_44 … src=\"http://ad.jp.ap.valuecommerce.com/servlet/gifban … height=\"1\" width=\"1\" Border=\"0\">","merchantName":"Amazon.co.jp通販サイト(アマゾン)","ecCode":"038p6","janCode":"","markCode":"","productCode":"4420150149","modelCode":"","subStoreId":"0","subStoreName":"Amazon","adult":"n","startDate":"20090422","category":"books-jp,commic","imageSmall":{"url":"http://ecx.images-amazon.com/images/I/21H5V4SXJY …},"imageLarge":{"url":"http://ecx.images-amazon.com/images/I/21H5V4SXJY …},"imageFree":{"url":"http://ecx.images-amazon.com/images/I/21H5V4SXJY …},"price":1,"commissionValue":0,"commissionPercent":3,"commissionFixed":0,"latitude":"","longitude":""}]}
====
この中から商品名titleだけをHTMLを使って取り出したいのです。
よろしくお願いいたします。

補足日時:2009/04/23 16:29
    • good
    • 0

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