2016-01-06 55 views
2

我有这个json并试图使用Ajax解析它。无法解析JSON数组

{ 
    "data1": ["1 06, 2016 23:27:11", "22.4", "26.3", "866.81"], 
    "data2": [ 
     ["1 06, 2016 21:55:39", "1 06, 2016 22:05:49", "1 06, 2016 22:15:59", "1 06, 2016 22:26:10", "1 06, 2016 22:36:19", "1 06, 2016 22:46:30", "1 06, 2016 22:56:41", "1 06, 2016 23:06:51", "1 06, 2016 23:17:01", "1 06, 2016 23:27:11"], 
     ["22.1", "22.2", "22.5", "22.6", "22.7", "21.5", "22.6", "22.6", "22.5", "22.4"], 
     ["25.7", "26.8", "27.1", "27.2", "27.2", "26.3", "26.9", "26.7", "26.4", "26.3"], 
     ["866.9", "866.64", "866.81", "866.61", "866.53", "866.65", "866.51", "866.65", "866.67", "866.81"] 
    ], 
    "data3": [ 
     ["1 03, 2016", "1 04, 2016", "1 05, 2016", "1 06, 2016"], 
     ["21.8", "21.1", "20.5", "20.3"], 
     ["23.8", "24.1", "24.2", "23.4"] 
    ], 
    "data4": [ 
     ["1 03, 2016", "1 04, 2016", "1 05, 2016", "1 06, 2016"], 
     ["32.7", "28", "22.9", "23.5"], 
     ["35.7", "32.8", "29.5", "28.5"] 
    ], 
    "data5": [ 
     ["1 03, 2016", "1 04, 2016", "1 05, 2016", "1 06, 2016"], 
     ["869.31", "870.46", "867.2", "864.37"], 
     ["872.57", "875.91", "875.54", "869.3"] 
    ] 
} 

解析后,控制台显示它就像从php文件打印一样。但是,它无法找到当我试图在控制台打印指定的值值,并给了我这个错误:

Uncaught TypeError: Cannot read property '0' of undefined 

例如打印数据1对象内部阵列(“1 06的第一个值时,使用2016二十三时27分11" 秒):

var jsonData = $.ajax({ 
    url: "source.php", 
    dataType:"json", 
    async: false 
    }).responseText; 
console.log(jsonData); 
console.log(jsonData.data1[0]); 
+1

上的console.log(jsonData.data1)什么显示; ? –

+0

它返回:undefined –

+0

您正在使用'.responceText'和'dataType:“json”'它们是否兼容?毕竟jquery shoudl已将其转换为json对象。或者可能不是在这种情况下,所以你可能不得不手动将字符串转换为json对象,如果你将其捕获为文本 – RiggsFolly

回答

1

尝试

$.getJSON("source.php", function(json) { 
    console.log(json.data1[0]); 
}); 
+0

这将正确返回所需的值。 –

+0

对Ajax代码的任何建议?我是一个初学者 –

+0

如果你想使用ajax请愿书我推荐:http://api.jquery.com/jquery.ajax/ 但如果你想做一个ajax请愿书,返回一个json我建议: http: //api.jquery.com/jquery.getjson/ –