2011-08-11 8 views

答えて

0

あなたがオブジェクトのメンバーをループにfor .. inを使用することができます。

var i, obj = {{your json object}}; 

for (i in obj) { 
    if (obj.hasOwnProperty(i)) { 
     console.log(i + ": " + obj[i]); 
    } 
} 

あなたのオブジェクトその内部にネストされたオブジェクトがあるため、2つのネストされたループを持つ必要があります。

0

"JSONオブジェクト"は実際にはテキスト表記のJavascriptオブジェクトです。クライアント側で行う必要があることは、その文字列をよく知られている方法と利用可能な方法のどちらかで解析することです(または少し悪い)evalその文字列です。

例:

var jsonString = '{"firstname":{"isEmpty":"Value is required and cannot be empty"},"email":{"isEmpty":"Value is required and cannot be empty"}}' 

var myParsedObject = JSON.parse(jsonString); 

for(var key in myParsedObject) { 
    if(myParsedObject.hasOwnProperty(key)) 
     console.log(key, ': ', myParsedObject[key]); 
} 

JSON.parseは、まさに上記のdesribedを行います。これは、オブジェクトのテキスト表記を真のJavascriptオブジェクトに変換します。これが完了したら、キーをループしてfor..inを使用してプロパティにアクセスするだけです。こう

それより「newschool'ish」それは連想配列だ場合と同じように、我々は

var myParsedObject = JSON.parse(jsonString); 
Object.keys(myParsedObject).forEach(function(key) { 
    console.log(key, ': ', myParsedObject[key]); 
}); 
+0

おかげで、しかし、IE6のような非Web 2.0の互換性のあるブラウザのためIE6 – cony

+0

@conyの使用json2.jsでsuportedないJSON.parse:https://github.com/douglascrockford/JSON-js –

0

のように、ES5でそれを行うだろう。

for (k in object){ 
    //You don't need printing source codes of object methods, right? 
    if (typeof object[k] != 'function'){ 
     document.write(object[k]); 
    } 
} 
関連する問題