Поскольку вы не можете изменить серверную часть JSON, вам нужно изменить его на стороне клиента, прежде чем анализировать его.
Учитывая упомянутое JSON, вы можете использовать эту функцию:
function fixData( d ) {
d = d.replace(/,\s*\"user\"\:/, ",");
d = d.replace(/\"user\"\:/, "\"users\":[");
d = d.replace(/}\s*$/, "]}");
return d;
}
И просто «исправьте» JSON перед запуском parseJSON
через:
var obj = jQuery.parseJSON(fixData(/* JSON string */));
Поиграйте с моим решением
Если вы хотите выполнить цикл по каждомуuser и output "псевдоним":
jQuery.each(obj.users, function(){ alert(this.nickname); });
Обратите внимание: Очевидно, что регулярное выражение в функции fixData
хрупкое и не должно использоваться в качестве общего решения для любых другихисточники данных;вам нужно будет переписать его под конкретный вариант использования, если он не совпадает точно.