• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryの$.getJSONでデータを渡したい)

jQueryの$.getJSONでデータを渡す方法

このQ&Aのポイント
  • jQueryの$.getJSONを使用してデータを渡す方法がうまくいかない問題が発生しています。
  • test.jsファイルを読み込み、{ "name": "John", "code": "0003" }というデータを渡していますが、json.users[2].nameでデータを取得しようとするとエラーが発生しています。
  • エラーメッセージによると、'users.2.name'はNullまたはオブジェクトではないということです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

あーごめんなさい。 $.getJSON("data.txt", hoge, function(json) ↓ $.getJSON("test.js", hoge, function(json) でしたね。

re999
質問者

お礼

回答を拝見して、getJSONでの、データを渡すって意味を勘違いしていたことに、初めて気がつきました。 ありがとうございましたー。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

こういうコードはいかがでしょうか。 ■test.js(動かなかったのでこちらも変えました。) ---------------------------------------------------- { "users" : [{ "name" : "aoki", "code" : "0001" }, { "name" : "ueno", "code" : "0002" }] } ---------------------------------------------------- ■読み込む側 ---------------------------------------------------- var hoge = { "name": "John", "code": "0003" }; $.getJSON("data.txt", hoge, function(json) { json.users.push( hoge );  alert("JSON Data: " + json.users[0].name);  alert("JSON Data: " + json.users[1].name);  alert("JSON Data: " + json.users[2].name); }); ----------------------------------------------------

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • jquery,ajaxによるphp通信でnull

    初めまして。 現在jqueryを勉強中の学生です。 いろいろなサイトを参考にしつつ、試しににjquery・ajaxを使ったphpとの通信を試みているのですが、文字列のやりとりがうまくいきません。 数字ではうまくいくのですが、文字になるとalertの部分でnullと返されてしまいます。 アドバイス等頂ければと思います。 よろしくお願いいたします。 以下部分的ではありますがコードを示します。 (jqueryはjquery-1.11.1.min.jsを使用) [js] $.ajax({ type: "POST", url: "step1.php", data: send_data, success: function(receive_data) { var parseAr = JSON.parse(receive_data); alert(parseAr[0]['name']); }, error: function(XMLHttpRequest, textStatus, errorThrown) {alert('Error: ' + errorThrown); } }); return false; [php側] <?php if(isset($_POST['name'])) { $result = array(); $result[] = array('name'=>'織田', 'age'=>'33'); $result[] = array('name'=>'織田', 'age'=>'33'); echo json_encode($result); } else { echo json_encode('The parameter of "name" is not found.'); } exit; ?>

  • $.getJSONにJSON.stringifyを

    $.getJSONに、JSON.stringifyした結果を指定したいのですが、どうすればよいでしょうか? ■現状 ・コンソールにJSONは出力されているのですが、$.getJSONでこのファイルを指定しても、画面真っ白です ▼index.html <script type="text/javascript" src="hoge.json"></script> <script type="text/javascript"> $.getJSON('hoge.json', function(data) { ▼hoge.json var obj =([ [略], ]); var json_text = JSON.stringify(obj); // テスト出力 console.log(json_text); ■質問 ・$.getJSONにこの出力結果(json_text)を指定するためには、どうすれば良いでしょうか? ・一旦ファイル出力しなければいけないのでしょうか? ・どうやるのでしょうか? ・AJAXでサーバ側へデータを渡してファイル出力した後、$.getJSONでその出力したファイルを指定するしかない?

  • jQueryの略記について

    HTTP通信でJSON形式のデータを読み込むメソッドがあります。 サンプルなどをみると下記のように書かれています。これは略記で書かれているのでしょうか??? $.getJSON() ※引数は省略しています。 上記のコードを略記で書くと $.getJSON() 略記で書かないと jQuery.getJSON() という事で合っていますか。 すみませんが宜しくお願いします。 では、失礼します。

  • jqueryの$.getJSONの処理結果について

    jqueryの$.getJSONの結果およびその違いについて教えてください。 以下の(1)と(2)の処理があり、(2)を(1)と同じ様に 出力したいと考えておりますが、(2)では(1)のように 「class="ui-li-static ui-body-inherit ui-first-child"」などが 設定されずに出力されてしまいます。 そのため、どのように記述すれば(1)と同じ結果になるのかを ご教授いただけますでしょうか。 また、宜しければ(1)と(2)の処理の違いを 教えていただけると助かります。 ※chrome バージョン 43.0.2357.81  apache-tomcat-7.0.53 =============== (1)固定値で埋め込み <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script> var test1 = function(){ $('#listviewtest').append('<li>1:aaaaaaa</li>'); $('#listviewtest').append('<li>2:bbbbbbb</li>'); $('#listviewtest').append('<li>3:ccccccc</li>'); }; $(document).on("pagebeforecreate", function() { test1(); }); </script> <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> </head> <body> <div data-role="page"> <div data-role="content"> <ul id="listviewtest" data-role="listview"> </ui> </div> </div> </body> </html> 処理結果 <ul id="listviewtest" data-role="listview" class="ui-listview"> <li class="ui-li-static ui-body-inherit ui-first-child">1:aaaaaaa</li> <li class="ui-li-static ui-body-inherit">2:bbbbbbb</li> <li class="ui-li-static ui-body-inherit ui-last-child">3:ccccccc</li> </ul> (2)$.getJSONで読み込み <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script> var test1 = function(){ $.getJSON( 'test.js', null, function(data, status) { var items = []; $.each(data, function(key, val) { items.push('<li>' + val.id + ':' + val.name + '</li>'); }); $('#listviewtest').append(items.join('')).trigger('create'); } ); }; $(document).on("pagebeforecreate", function() { test1(); }); </script> <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> </head> <body> <div data-role="page"> <div data-role="content"> <ul id="listviewtest" data-role="listview"> </ul> </div> </div> </body> </html> 外部ファイル(test.js) [ {"id":1,"name":"aaaaaaa"}, {"id":2,"name":"bbbbbbb"}, {"id":3,"name":"ccccccc"} ] 処理結果 <ul id="listviewtest" data-role="listview" class="ui-listview"> <li>1:aaaaaaa</li> <li>2:bbbbbbb</li> <li>3:ccccccc</li> </ul>

  • フォームからjQuery,jQuery.jsonを使ってJSONを作っ

    フォームからjQuery,jQuery.jsonを使ってJSONを作ってPHPで表示したい。 こんばんは。2、3日ずっと悩んでて解決しないので助けてください。 jQuery,jQuery.jsonを使ってJSONを作成しています。 クリックイベントに var form = $("#sform"); var json = $(form.serializeArray()); var strJson = $.toJSON(json); という形をとって $.ajax({ url : "request.php", type : "post", data : strJson, success: function(request){ $('#result').html(request); } }); で送っています。 ただPHP側で var_dump($_POST); を行ってもArray ( ) と表示されます。 firebugで見たところpostに入っているデータは以下の通りです。 {"0":{"name":"date","value":"2010/09/15"},"1":{"name":"type","value":"new"},"2":{"name":"bin[]","value":"2"},"3":{"name":"bin[]","value":"3"},"length":4} var_dumpで表示できないのはなぜでしょうか? 上記で変数json のまま送るとオブジェクトとして送れてvar_dump でも表示できます。 ただ今はjson の勉強をしているので、できればなぜこうなっているのかを理解したいです。 基本的なところで勉強不足かもしれませんが、何かアドバイスなど頂けると嬉しいです。 よろしくお願いします。

  • このJSONデータをjQueryでどう処理すれば?

    質問させてください。 JSONデータの扱い方に悩んでおります。 以下の2つのコードはここでは見にくいため次のサイトに載せておきます。 http://codepad.org/CSN6X94T http://codepad.org/aPiIzcOR data.json [ { "pk": 1, "model": "ac.ni", "fields": { "kamoku_alpha": "SUUGAKU", "kamoku": "数学", "hissu": 0, "kamoku_hira": "すうがく" } }, { "pk": 2, "model": "ac.ni", "fields": { "kamoku_alpha": "EIGO", "kamoku": "英語", "hissu": 0, "kamoku_hira": "えいご" } }, { "pk": 3, "model": "ac.ni", "fields": { "kamoku_alpha": "KOKUGO", "kamoku": "国語", "hissu": 1, "kamoku_hira": "こくご" } } ] のようなJSONデータがあります。 この中でそれぞれのfields内のkamoku、kamoku_hira、kamoku_alphaを取得したいと考えています。 jQueryにてどのように書けば宜しいのでしょうか? $(function(){ $.getJSON('./data.json', function(data){ $.each(data, function(){ $.each(data.filter, function(){ alert(this.kamoku); }); }); }); }); の型で考えたのですが良く分かりませんでした。 アドバイス頂けたら幸いです。 jQueryは1.11.1です。

  • jQuery.getの引数dataで動的にするには

    お世話になります。 jQuery.get()の第二引数dataによって、動的にJSONを取得したいです。 第一引数urlがhttp://test.com 第二引数が{id:1,name:tanaka}としてgetした場合 http://text.com?id=1&name=tanaka とリクエストしてると考えてよいのでしょうか。 ある大手サイトでget()時、dataによって取得できるJSONが違うのですが、 そのURLの最後に拡張子がありません。 JSONは拡張子が無くても良いというのを知りましたが これはJSONの形式でそのように動的に発行しているのでしょうか。 もしくはサーブレットあたりが動いて動的にさせてるのでしょうか。 たぶんPHPとかではないですよね。 上の例でいくと http://text.com?id=2 http://text.com?id=5 http://text.com?id=15 これで取得できるのが違います。 どうなってるのかさっぱり判りません。 すみません、よろしくお願いいたします。

  • 楽天APIのデータをjqueryのgetJSONで呼び出して、その呼び

    楽天APIのデータをjqueryのgetJSONで呼び出して、その呼び出したデータをjcarouselliteを使って、カルーセルで表示したいのですが、上手く表示されません。 どの様にしたら良いでしょうか、助言をいただけるととてもありがたいです。 なお、記述はこの様になっております。 ちなみに、参照ページはhttp://www.rakuten.ne.jp/gold/giftland/ocyuugen/です。 ■html部分■ <div class="carousel"> <button class="prev">戻る</button> <ul id="jCarouselLite"> </ul> <button class="next">次へ</button> </div> ■javascript部分■ //楽天APIの呼び出し $.getJSON( "http://api.rakuten.co.jp/rws/3.0/json?developerId=a85598e3698a4fec0b48db3036df0c6e&operation=ItemSearch&version=2009-04-15&keyword=%E3%80%90%E5%BE%A1%E4%B8%AD%E5%85%832010%E5%A4%8F%E3%80%91", function(data, status) { var items = data.Body.ItemSearch.Items.Item; $.each(items,function(i){ var img = items[i].mediumImageUrl; var price = items[i].itemPrice; var url = items[i].itemUrl; var name = items[i].itemName; $(".carousel ul").append("<li><a href='" + url + "'><img src='" + img + "'><span>"+ price + "円</span></a><li>"); }); } ); //jcarouselliteの設定での記述 $(".carousel").jCarouselLite({ btnNext: ".next", btnPrev: ".prev" }); 何卒、宜しくお願いいたします。

  • jQueryで複数の要素オブジェクトを取得したあと

    jQueryで複数の要素オブジェクト(というの?)を取得するケースで、jQueryオブジェクトとして扱えなくなっていることが気持ち悪く、ここをどうにかできないかという話です。 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <input type="text" id="ii1" name="nn" value="マツコ"> <input type="text" id="ii2" name="nn" value="竹田"> <input type="text" id="ii3" name="nn" value="小梅太夫"> <script> jQuery(function ($) {   alert($("#ii1").val()); // (0)   alert($("[name=nn]:eq(1)").val()); // (1)   alert($("[name=nn]:first-child").val()); // (2)   alert($("[name=nn]")[2].value); // (3)   alert($("[name=nn]").get(1).value); // (4) }); </script> このソースで、(0)はいいとして、(1)(2)のようにオブジェクトが一つしか返らないような場合には、「.val()」メソッドが使えます。しかし(3)(4)の場合には、少なくともこのままでは「.val()」メソッドが使えないため、Elementオブジェクトのvalueプロパティを使用しています。 値を取得するコードで「.val()」「value」が混在しているのが気持ち悪く、「value」に統一したいです。ちなみに実際には「$("[name=nn]")」のように取得したあと、for文でまわして処理するケースが多いです。 「$("[name=nn]")」で取得し、オブジェクトの件数をカウントしたあと苦肉の策で、for文の中で「$("[name=nn]:eq(" + i + ")").val()」等と書いたこともありますが、むしろ読みにくくなってしまっています。これだったらまだvalueプロパティを使う方がいいかと思います。 「$("[name=nn]")」で複数のオブジェクトを取得した後で、それぞれのオブジェクトに「.val()」を使う方法はありますでしょうか?あるのなら具体的に教えてください。 よろしくお願いします。

  • JQueryを用いたJsonとの非同期通信について

    下のソース //画面構築完了後 $(function() { //ボタンのクリックイベントで $("#btn_1").click(function(){ //data/sample.jsonのデータを取得し、jsonというオブジェクトに入れる $.getJSON("fdas.json", function(json){ var rows = ""; //テーブルとして表示するため、htmlを構築 //for (i = 0; i < json.length; i++) { rows += "<tr>"; rows += "<td>"; for (var kaey in json) { rows += (json[kaey]); } rows += "</td>"; rows += "</tr>"; //} //テーブルに作成したhtmlを追加する $("#tbl").append(rows); }); }); }); このソースに <input id="btn_1" type="button" value="データ取得" /> を使ってボタンを押しているのですが、FirefoxだとJsonのデータを更新してから押してもデータが変更されず、ChromeだとF5とかを幼くても更新されます。 ブラウザによって挙動が違うのはソースが間違っているからですか? それともJsにもHTML5やCSS3のように、対応ブラウザなどがあるのでしょうか??? また自分はまだよくわかっていないのですが、prototype.jsを用いた場合のほうが簡単だということがありましたらそちらも教えていただけると幸いです 教えてください!!!