Следующий ответ будет правильным JSON:
[
{JSON},
{JSON},
{JSON},
{JSON}
]
Поскольку ваш JSON искажен, просто исправьте его на стороне сервера. Следующий код является немного более кратким, чем предложенный EndangeredMassa, и он избегает добавления запятой между скобками, заключенными в кавычки. Я не очень хорош в RegEx, чтобы понять это с помощью одного .replace ().
var string = "{\"key\":\"val}{ue\"}{'key':'val}{ue'}{ \"asdf\" : 500 }";
var result = string.match(/('.*?')|(".*?")|(\d+)|({)|(:)|(})/g);
var newstring = "";
for (var i in result) {
var next = parseInt(i) + 1;
if (next <= result.length) {
if (result[i] == "}" && result[next] == "{") {
newstring += "},";
}
else {
newstring += result[i];
}
}
}
Чтобы перебрать объекты JSON, используйте следующее:
$.each(eval(newstring), function() {
//code that uses the JSON values
alert(this.value1);
alert(this.value2);
});