[解決済み] JavaScriptでJSON文字列を作成するには?
2022-10-20 22:11:52
質問
window.onload = function(){
var obj = '{
"name" : "Raj",
"age" : 32,
"married" : false
}';
var val = eval('(' + obj + ')');
alert( "name : " + val.name + "\n" +
"age : " + val.age + "\n" +
"married : " + val.married );
}
このようなコードで、遊び半分でJSON文字列を作ろうとしています。これはエラーを投げていますが、私は1つの行(2行目)にすべての名前、年齢、結婚を置くと、それはありません。何が問題なのでしょうか?
どのように解決するのですか?
免責事項:これは、JavaScript自体でJSONを作成する方法について、最良の方法に従って回答するものではありません。この回答は主に、"何が問題なのか、または上記のコードが動作しない理由、つまり JavaScript での間違った文字列連結の試みに取り組むものであり、そもそも文字列連結が JSON 文字列を作成する非常に悪い方法である理由には取り組みません。
JSONを作成する最良の方法については、こちらを参照してください。 https://stackoverflow.com/a/13488998/1127761
この回答を読むと、上記のコードサンプルがなぜ動作しないのかがわかります。
Javascriptは複数行に渡る文字列を扱うことができません。
それらを連結する必要があります。
var obj = '{'
+'"name" : "Raj",'
+'"age" : 32,'
+'"married" : false'
+'}';
ES6 以降ではテンプレート・リテラルを使うこともできます: ( ドキュメントはこちらをご覧ください )
var obj = `{
"name" : "Raj",
"age" : 32,
"married" : false,
}`;
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?
-
[解決済み] オブジェクトをJSON文字列に変換する