プロが教える店舗&オフィスのセキュリティ対策術

以下のような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]
     ]

]



}

A 回答 (2件)

No.1 の補足について


> 値が代入されませんでした。

スクリプトは特に問題はありません。
実際のJSONデータですが、もしかして全角スペースが混入されていませんか?

ブラウザの開発者ツールなどで、エラー内容をご確認ください。
http://www.htmlhifive.com/conts/web/view/study-r …
    • good
    • 0
この回答へのお礼

ありがとうございました。スペースや改行を全部なくしたらうまくいきました。全角スペースが入らないように改行をいれてもうまくいきました。

お礼日時:2014/07/18 14:55

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
    • good
    • 0

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