$.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でその出力したファイルを指定するしかない?
No.2ベストアンサー
- 回答日時:
何をどうしたいのかよく読み取れませんが・・・
ajaxとjsonの両方に誤解があるようです。
(jQueryを使用していると仮定)
>$.getJSON('hoge.json', function(data) {
ご質問文通りの構成であるなら、上の文で指定しているファイルはJSONファイルではなくスクリプトファイルになっています。
getJSONで取得したいのなら、JSON形式のデータファイルを用意するか、サーバサイドのプログラムからJSONデータを出力するなどが必要です。
あるいは、元のデータがご提示の「hoge.json」のようなスクリプトファイルになっているのであれば、ご提示の例のように
><script type="text/javascript" src="hoge.json"></script>
でスクリプトとして読み込めば十分で、ajaxなど用いる必要もなくクロスドメインも気にする必要がなくなります。
>コンソールにJSONは出力されているのですが、
ご提示の通りだとするなら、スクリプトタグで実行されたデータがコンソールに出力されているのであって、getJSONで取得しているわけではありません。
>$.getJSONにこの出力結果(json_text)を指定するためには、
>どうすれば良いでしょうか?
ご提示の内容では、json_textは出力結果ではありません。(どこにも出力されていない)
(javascriptの処理結果です。また、javascriptはクライアントサイドで実行されるスクリプトなので、サーバサイドでは処理されません。)
先にも書きましたように、ajaxでjsonを取得したいのなら、指定URLからのレスポンスがJSONになるようにする必要があります。
No.1
- 回答日時:
>$.getJSONに、JSON.stringifyした結果を指定したいのですが、どうすればよいでしょうか?
結果を指定したい??
>コンソールにJSONは出力されているのですが、$.getJSONでこのファイルを指定しても、画面真っ白です
コンソールに結果が出力されるのはhoge.jsonでconsole.log(json_text)を実行しているからです。
画面が真っ白なのは画面に結果を出力していないからです(HTML/JavaScriptが省略されてるので推測ですが)。
画面への出力は$.getJSONの第2引数のfunctionの中でやりますが、ここで引数のdataを画面に出力する処理が必要です。
var jsonStr = JSON.stringify(data); //JSONオブジェクトを文字列に変換
$("body").append(jsonStr); //HTMLのbodyタグにJSON文字列を追加
>・$.getJSONにこの出力結果(json_text)を指定するためには、どうすれば良いでしょうか?
出力結果を指定する??
・一旦ファイル出力しなければいけないのでしょうか?
何をしたいのかがイマイチわからないので出力すべきかどうかがわかりません。
・どうやるのでしょうか?
同上
・AJAXでサーバ側へデータを渡してファイル出力した後、$.getJSONでその出力したファイルを指定するしかない?
同上
hoge.jsonに定義したJSONを画面に出力したいということであれば、
hoge.jsonには出力したいJSON("{"で始まり"}"で終わる)だけをかきます。
変数の代入(var宣言)やログ出力(console.log)などの処理を記述するべきではありません。
▼hoge.json
{
"name" : "鈴木太朗",
"age" : 18,
"sex" : "男"
}
▼index.html
<script>
$.getJSON('hoge.json', function(data) {
var jsonStr = JSON.stringify(data); //オブジェクトを文字列に変換
$("body").append(jsonStr); //画面への出力:HTMLのbodyタグにJSON文字列を追加
}
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1~100までの数字を表示し、か...
-
Javaで改行などが出来ないのです。
-
Log4jで機能毎に別ファイルへ出...
-
flush()とclose()について
-
System.err. printlnとSystem.o...
-
Log4Jではログを改行できない?
-
[至急]Project Euler:#17Number...
-
サーブレットPrintWriterについて
-
Java 九九の表について
-
大容量のテキストファイルの内...
-
バイトスワップ
-
switch分が機能しません。
-
System.out.printを書くとエラー
-
PrintWriterとBufferedWriterの...
-
「得た値をCSV出力するJAVAプロ...
-
ArrayListによる計算表作成
-
java ファイル操作について
-
1~100までの数字を表示したい
-
system.out.printが出力されない
-
固定長データの情報処理について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
1~100までの数字を表示し、か...
-
Javaで改行などが出来ないのです。
-
Log4jで機能毎に別ファイルへ出...
-
1~100までの数字を表示したい
-
flush()とclose()について
-
System.out.printlnの出力先
-
ジャバスクリプトについて。
-
system.out.printが出力されない
-
Eclipseのコンソールを常に表示...
-
System.out.printlnの意味がよ...
-
一定のスペースを空けて端を揃...
-
switch分が機能しません。
-
Tomcatが無応答となる現象が起...
-
javaのwhile文で九九の表
-
Javaの問題なのですが、 永久ル...
-
JavaScriptの変数をjavaのメソ...
-
テキストエリアで改行する
-
StringBufferで改ページ処理を...
-
VBSエラー"オブジェクト型の変...
おすすめ情報