Уже поздно отвечать, но это может быть полезно кому-то еще.Я занимаюсь разработкой гаджета для Windows и не могу использовать JSON.parse (string) из eval (string) для преобразования строки, возвращенной с сервера в json, просто не работает, но я нашел какой-то странный способ сделать это.
var json = (eval("[" + eval(json string) + "]"))[0]; //magic but works (btw creates json array as required in the question, all that required is to remove [0] in the end).
Полный пример кода:
function syncRequest(_url, _data) {
var req = new XMLHttpRequest();
req.open("POST", _url, false);
req.setRequestHeader("Content-type", "application/json");
req.send(_data);
return req.responseText;
}
var response = syncRequest("http://...", "{json data}");
//here response converted into json
var json = (eval("[" + eval(response) + "]"))[0];