This is my code:
$.ajax({
url: \"some_url/\",
type: \"GET\",
dataType: \"json\",
success: function(data){
console.log(data);
I believe data is a JSON string. Since forEach()
is a array function and you are trying to implement it on the JSON string it throws the error:
"Uncaught TypeError: data.forEach is not a function"
You have to parse the data with JSON.parse() before using forEach()
:
The
JSON.parse()
method parses a JSON string, constructing the JavaScript value or object described by the string. An optional reviver function can be provided to perform a transformation on the resulting object before it is returned.
data = JSON.parse(data);
Demo:
var data = JSON.stringify([{"model": "app.mdl", "pk": 1, "fields": {"name": "test", "rank": 1}}]);
data = JSON.parse(data);
data.forEach(function(element){
console.log(element);
});
So the success should be:
success: function(data){
data = JSON.parse(data);
console.log(data);
data.forEach(function(element){
console.log(element);
});
}