以下のようなjsonのデータの中から、ccと33をとりだし、変数に代入しようとしています。
jsonのデータは読み込めているのですが、その後の
var myData = JSON.parse(this.responseText);
x = myData.we[0][2][0];
y = myData.we[0][2][1];
としてるのですが、代入ができていません。データの構造が間違っていますか?x = myData.we[0][2][0]; y = myData.we[0][2][1]; の部分が間違っていますか?javascript jsonについては初心者です。詳しく教えていただきたく思い投稿しました。よろしくお願いします。
------ json ---------------------------------------
{
"wd":[
[
["a",1],["b",2],["c",3],["d",4],["e",5]
],
[
["f",6],["g",7],["h",8],["i",9],["j",0]
]
],
"we":[
[
["aa",11],["bb",22],["cc",33],["dd",44],["ee",55]
],
[
["ff",66],["gg",77],["hh",88],["ii",99],["jj",00]
]
]
}
No.2ベストアンサー
- 回答日時:
No.1 の補足について
> 値が代入されませんでした。
スクリプトは特に問題はありません。
実際のJSONデータですが、もしかして全角スペースが混入されていませんか?
ブラウザの開発者ツールなどで、エラー内容をご確認ください。
http://www.htmlhifive.com/conts/web/view/study-r …
ありがとうございました。スペースや改行を全部なくしたらうまくいきました。全角スペースが入らないように改行をいれてもうまくいきました。
No.1
- 回答日時:
JavaScript は数字の前に特殊な文字を付けることで、10進数以外の数を書くことが出来ます。
0 を付ければ 8進数
0x を付ければ 16進数
ということで
00 は 8進数で表記した 0 とみなされます。
JSON は JavaScript の表記を基にしていますが、
数字は 10進数でのみ表記できると制限をかけているので、
頭に 0 とか 0x とかを付けた数字を一律エラーとしてしまいます。
参考) RFC 4627 2.4. Numbers
というわけで、
誤) ["ff",66],["gg",77],["hh",88],["ii",99],["jj",00]
正) ["ff",66],["gg",77],["hh",88],["ii",99],["jj",0]
この回答への補足
10進数以外のことを知りませんでした。00を0に直してやってみたのですが、値が代入されませんでした。javascriptの記述はこれで大丈夫でしょうか?
補足日時:2014/07/17 14:54お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript json形式データのデータ連携について 4 2022/04/05 23:01
- JavaScript JSON について 1 2022/06/09 18:17
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- JavaScript SQLでデータベースから返ったデータのJSON形式生成について 1 2022/04/06 12:25
- JavaScript API連携のプログラミングについて(Typescript) 2 2023/05/03 11:00
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP JSON_UNESCAPED_UNICODEをつけてもJSONの日本語がブラウザで表示されない 1 2022/11/16 07:22
- アプリ Voiceflowでアレクサスキルを作成したらどうやって限定公開したらいいのでしょうか? 2 2023/06/02 03:26
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
[VBS]変数を定数に変換する方法...
-
エラーの意味は? Lvalue req...
-
C言語 アロー演算子について質...
-
C言語 列挙型(enum型)変数について
-
整数xxxが大き過ぎますというエ...
-
サブwindowをオープンして外部...
-
Excel VBAでイコール二回使えま...
-
テキストファイルの値をバッチ...
-
EXCEL/VBA 変数の値をクリップ...
-
DataTableの値を変数に代入したい
-
verilog HDLの[=]と[<=]の使い分け
-
C言語 exitで終了した関数の戻...
-
i++と++i ってどう違うのですか?
-
コマンドプロンプト バッチ|結...
-
jsp~jspにhiddenを使って変数...
-
複数の演算子を選択する場合の処理
-
VB6.0 DataGridでのfirstRowの...
-
VBA 1行で複数の代入を行った...
-
C言語 exitの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
C言語 列挙型(enum型)変数について
-
EXCEL/VBA 変数の値をクリップ...
-
整数xxxが大き過ぎますというエ...
-
テキストボックスの値を変数に...
-
[VBS]変数を定数に変換する方法...
-
Variant型で宣言してるのにEmpt...
-
jsp~jspにhiddenを使って変数...
-
processing エラーで、 "cannot...
-
python の 連鎖代入の文法
-
i++と++i ってどう違うのですか?
-
プログラミングで変数と関数の...
-
C言語 アロー演算子について質...
-
「%」を使って、偶数か奇数かを...
-
JavaScriptをURLから直接実行し...
-
VBA 1行で複数の代入を行った...
-
ExcelのVBAでをA列に第0〜19項...
-
無名関数のメリットがよくわか...
-
コマンドプロンプト バッチ|結...
おすすめ情報