10秒目をつむったら…

たとえばJSONで

var listnerData = {listner:[
{elmId:'search_member',evtName:'click',funcName:'SearchMember'}
]
}

のように定義されるものの読み出し方はわかったのですが、上記を通常の定義方法で作成するにはどうすればよいのでしょうか。

最初にobject型で定義した変数に対して、配列をぶらさげようとするとエラーになります。

よろしくお願いします。

A 回答 (2件)

>別の変数に既に入ってしまっている場合はどう処理すれば良いですか?


var json1 = {elmId:'search_member',evtName:'click',funcName:'SearchMember'};

var listnerData = new Object;

if(listnerData.listner == undefined){
listnerData.listner = new Array();
}
listnerData.listner.push(json1);

alert(listnerData.listner[0].elmId);
のようにするか
var listnerData = {listner : new Array() };
listnerData.listner.push(json1);
のようにすればいいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
pushメソッドというのは書籍にも具体的な例が載っておらず、こういう使い方ができるものだとは知りませんでした。
とても助かりました。

類似の件でもう少し知恵をお貸し願いたいのですが、別の質問として登録することにします。

お礼日時:2006/04/18 10:20

var listnerData = new Object;


listnerData.listner = [
{elmId:'search_member',evtName:'click',funcName:'SearchMember'}
];
で良いと思います。

この回答への補足

なるほど。
一件目の登録時には配列をそのまま代入してしまうという方法が使えるわけですね。
ありがとうございます。

更に質問なのですが、このケースで{elmId:'search_member',evtName:'click',funcName:'SearchMember'}
が別の変数に既に入ってしまっている場合はどう処理すれば良いですか?

一旦ダミーで
listnerData.listner = [];
とでもしてから
listnerData.listner[0]
に対して代入するくらいしかないでしょうか?

補足日時:2006/04/17 19:20
    • good
    • 0

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