I am trying to parse json object and string it keeps throwing back an error. See line 136. I have also tried looking up on stackoverflow still nothing.:
What I have tried:
I have changed eval to json.parse:
var films = JSON.parse("(" + rawData + ")");
Still nothing. Cant seem to fid out what's wrong with it?
function getFilmsTable(rows) {
var headings =
[ "id", "title", "year", "director", "stars", "review" ];
return(getTable(headings, rows));
}
function xmlFilmsTableresult(resultRegion, field1, field2) {
var address = "show-films";
var data = makeParamString(field1, field2, "xml");
ajaxPost(address, data,
function(request) {
showXmlFilmsInfo(request, resultRegion);
});
}
$(document).ready(function() {
$("#btnXmlFilmsTable").click(function() {
var address = "http://localhost:8080/Control?format=xml";
var data = "";
$.ajax({
url: address,
success: function(data) {
showXmlFilmsInfo(data);
}
});
});
});
function showXmlFilmsInfo(request) {
if (request!=null) {
var xmlDocument = request;
var films = xmlDocument.getElementsByTagName("film");
var rows = new Array();
for(var i=0; i<films.length; i++) {
var film = films[i];
var subElements = [ "id", "title", "year", "director", "stars", "review" ];
rows[i] = getElementValues(film, subElements);
}
var table = getFilmsTable(rows);
$("#xml-films-table").html(table);
}
}
function jsonFilmsTableresult(resultRegion, field1, field2) {
var address = "show-films";
var data = makeParamString(field1, field2, "json");
ajaxPost(address, data,
function(request) {
showJsonFilmsInfo(request, resultRegion);
});
}
$(document).ready(function() {
$("#btnJsonFilmsTable").click(function() {
var address = "http://localhost:8080/Control?format=json";
var data = "";
$.ajax({
url: address,
success: function(address) {
showJsonFilmsInfo(address);
}
});
});
});
function showJsonFilmsInfo(request) {
if (request!=null) {
console.log(request);
alert(request);
var rawData = request;
console.log(rawData);
var films = JSON.parse("(" + rawData + ")");
var rows = new Array();
for(var i=0; i<films.length; i++) {
var film = films[i];
var subElements = [ "id", "title", "year", "director", "stars", "review" ];
rows[i] = getElementValues(film, subElements);
}
var table = getFilmsTable(rows);
$("#json-films-table").html(table);
}
}
function stringFilmsTableresult(resultRegion, field1, field2) {
var address = "show-films";
var data = makeParamString(field1, field2, "string");
ajaxPost(address, data,
function(request) {
showStringFilmsInfo(request, resultRegion);
});
}
$(document).ready(function() {
$("#btnStringFilmsTable").click(function() {
var address = "http://localhost:8080/Control?format=string";
var data = "";
$.ajax({
url: address,
success: function(data) {
showStringFilmsInfo(data);
}
});
});
});
function showStringFilmsInfo(request) {
if ((request.readyState == 4) &&
(request.status == 200)) {
var rawData = request.responseText;
var film = rawData.split(/\n+/);
var rows = new Array();
for(var i=0; i<films.length; i++) {
if (films[i].length > 1) {
rows.push(films[i].split("#"));
}
}
var table = getFilmsTable(rows);
$("#string-films-table").html(table);
}
}
[ "id", "title", "year", "director", "stars", "review" ]
function filmsTable(filmTypeField, formatField, resultRegion) {
var address = "show-films";
var filmid = getValue(filmTypeField);
var filmtitle = getValue(filmTypeField);
var filmyear = getValue(filmTypeField);
var filmdirector = getValue(filmTypeField);
var filmstars = getValue(filmTypeField);
var filmreview = getValue(filmTypeField);
var format = getValue(formatField);
var data = "filmid=" + filmid +
"filmtitle=" + filmtitle +
"filmyear=" + filmyear +
"filmdirector=" + filmdirector +
"filmstars=" + filmstars +
"filmreview=" + filmreview +
"&format=" + format;
var responseHandler = findHandler(format);
ajaxPost(address, data,
function(request) {
responseHandler(request, resultRegion);
});
}
function findHandler(format) {
if (format == "xml") {
return(showXmlFilmsInfo);
} else if (format == "json") {
return(showJsonFilmsInfo);
} else {
return(showStringFilmsInfo);
}
}