我想解析一個大的json文件(240'000字符)使用JavaScript。我使用ajax從servlet中檢索json數據。我使用的代碼可以在較小的樣本中正常工作,但當xmlHttp.responseText包含大量的json數據時就會拋出這個問題。問題解析大型json使用eval和替代
Uncaught SyntaxError: Unexpected token ILLEGAL
mycallbackFunction
xmlHttp.onreadystatechange
上面說的是意外的標記是在對含有
var data = eval('(' + xmlHttp.responseText + ')');
這行是代碼的主旨:
getJsonData(mycallbackFunction, parameters);
function getJsonData(callbackFunction, parameters){
var xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', servlet_url + parameters, true);
xmlHttp.onreadystatechange = function(){
callbackFunction(xmlHttp);
}
xmlHttp.setRequestHeader('Content-Type', 'application/json');
xmlHttp.send(null);
}
function mycallbackFunction(xmlHttp){
var data = eval('(' + xmlHttp.responseText + ')');
}
使用的eval()的方法,是從稱爲xmlHttp.onreadystatechange如果有什麼區別。
我也使用json2.js嘗試和得到相同的結果,它工作正常較小JSON樣本,但是當我試圖用我的240K字符文件,它說:
Uncaught #<Object>
在此先感謝。
您是否嘗試過使用瀏覽器的原生JSON解析功能而不是'eval()'? – 2011-06-08 13:47:06
不會是這個問題的大小 - 你在那裏有格式不正確的JSON。 – BonyT 2011-06-08 13:48:13
@BonyT說得很好。 http://jsonlint.com中的JSON是否有效? (如果它可以處理240k的數據) – 2011-06-08 13:48:54