アプリ版:「スタンプのみでお礼する」機能のリリースについて

json.jsのparseJSONメソッドで読み込み

Cをはずして、
obj.Aは「私」
obj.Bは「2038」
でアクセスできますが、
Cが間違っているためかJavascriptが動作しません。
JSONは文字列、数値、配列などオブジェクトを値として持てる?はずなのに、エラーになるのは何が原因でしょうか?


{
"A" : "私",
"B" : 2038,
"C" : function(){document.bgColor = 'yellow';}
}

A 回答 (4件)

>以下のサイトは、JSONのメソッド部分で間違いでしょうか?


>​http://www.bnote.net/javascript/json.shtml
>​http://www.hmsoft.co.jp/lepton/software/ajax/jso …

間違えています。JSONはいわゆるjavascriptのメソッドをもてません。
JSONは、javascriptとは無関係の、単なるデータフォーマットです。

JSONデータは、javascriptにしてみれば最初はただの文字列です。それをjavascriptのオブジェクトにするわけですが、その時にJSONデータをevalします。JSONデータに危険なコードが含まれていると、これは安全ではありません。従って、JSONの仕様に正しくしたがっているデータかどうかを判別する、それがparseJSON()です。

http://www.json.org/js.html

をご覧ください。

参考URL:http://www.json.org/
    • good
    • 0

#2>以下のサイトは、JSONのメソッド部分で間違いでしょうか?


javascript で、オブジェクトを定義する時、そのように書けます。
IE、Firefoxでは、実行できます。

>parseJSONメソッドで読み込み
ができないということではないでしょうか?
parseJSONを試してはいませんので見当違いなコメントだったらすみません。
    • good
    • 0

obj.C();


としてみたらどうでしょう
    • good
    • 0
この回答へのお礼

いつもありがとうございます。

obj.C();以前に
定義の段階でエラー?無視されます。

"C" : "function(){}"
としないと、スクリプト全体がうまくいかないです。

以下のサイトは、JSONのメソッド部分で間違いでしょうか?
http://www.bnote.net/javascript/json.shtml
http://www.hmsoft.co.jp/lepton/software/ajax/jso …

お礼日時:2006/09/26 10:32

JSONは関数をもてません。


もし関数を持ちたいなら、
"C" : "function(){document.bgColor = 'yellow';}"
として、使うときにevalします。
    • good
    • 0
この回答へのお礼

その様ですね。

どうやら、""で囲んでevalしないといけないみたいですね。

でも、evalで直接実行すると危ないと聞きますが、
JSONパースを通しても危険度は変わらないということでしょうか?

ま、今の私の質問はJSONにメソッドが定義できるか
ですけどでね。

お礼日時:2006/09/26 10:35

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