オブジェクトをメンバーにして、プレーンなJavaScriptオブジェクトをループするには?

オブジェクトである値を含む、JavaScriptオブジェクトのすべてのメンバーをループするにはどうすればよいでしょうか。

例えば、これをループさせる("your_name"と"your_message"にそれぞれアクセスする)にはどうしたらよいでしょうか?

var validation_messages = {
    "key_1": {
        "your_name": "jimmy",
        "your_msg": "hello world"
    },
    "key_2": {
        "your_name": "billy",
        "your_msg": "foo equals bar"
    }
}
ソリューション
for (var key in validation_messages) {
    // skip loop if the property is from prototype
    if (!validation_messages.hasOwnProperty(key)) continue;

    var obj = validation_messages[key];
    for (var prop in obj) {
        // skip loop if the property is from prototype
        if (!obj.hasOwnProperty(prop)) continue;

        // your code
        alert(prop + " = " + obj[prop]);
    }
}
解説 (4)
for(var k in validation_messages) {
    var o = validation_messages[k];
    do_something_with(o.your_name);
    do_something_else_with(o.your_msg);
}
解説 (0)
for(var key in validation_messages){
    for(var subkey in validation_messages[key]){
        //code here
        //subkey being value, key being 'yourname' / 'yourmsg'
    }
}
解説 (0)