未捕获的TypeError:无法读取属性JSON

I have JSON PHP Output below

{"data_0":{"data_1":{"A":0,"B":0},"data_2":{"C_C":"CC","D_D":"DD"}}}

In jQuery have code :

$.ajax({
    url : 'process.php',
    dateType: 'json',
    type: 'POST',
    data : {val : data_val},
    success: function(data){
        $(data.data_0.data_2).each(function(key, value) {
        alert(key + " " + value);
        });

But when run I received error : Uncaught TypeError: Cannot read property 'data_2' of undefined.

How to fix it ?

Thanks you so much.

change this:

dateType: 'json',

to this;

dataType: 'json',

You have a type it should be dataType not dateType.


Also you should use $.each() utility method of jQuery instead of .each():

$.each(data.data_0.data_2, function(key, value) {
    alert(key + " " + value);
});

$.each() docs:

The $.each() function is not the same as $(selector).each(), which is used to iterate, exclusively, over a jQuery object. The $.each() function can be used to iterate over any collection, whether it is an object or an array. In the case of an array, the callback is passed an array index and a corresponding array value each time.

You need to parse json first using JSON.parse()

$.ajax({
url : 'process.php',
dataType: 'json',
type: 'POST',
data : {val : data_val},
success: function(data){
    data = JSON.parse(data);
    $(data.data_0.data_2).each(function(key, value) {
    alert(key + " " + value);
    });

Please fix like Jai has suggested you, and For key and value take a look on this example:

var data = JSON.parse('{"data_0":{"data_1":{"A":0,"B":0},"data_2":{"C_C":"CC","D_D":"DD"}}}');
var keys = Object.keys(data.data_0.data_2);

for(var i in keys) {
    alert("Key:"+keys[i]+", value:"+data.data_0.data_2[keys[i]]);
}

DEMO