Раз так работает, значит и иначе должно работать.
var JSONText = '{"id": "0", "nr": "101", "st": "0"}';
var JSONObject = JSON.parse(JSONText);
alert(JSONObject.id);
Скорее всего вам сервер с какого-то х*я отдаёт JSON в дополнительных кавычках:
var JSONText = '"{"id": "0", "nr": "101", "st": "0"}"';
var JSONObject = JSON.parse(JSONText);
alert(JSONObject.id);
За такое вообще хозяину сервера руки поотрывать. Ну или вам, если это ваш косяк.
Если не ваш, и ничего поделать нельзя, можно извратиться так:
var JSONText = '"{"id": "0", "nr": "101", "st": "0"}"';
var JSONObject = JSON.parse(JSONText.slice(1,-1));
alert(JSONObject.id);
P.S. Вам лучше использовать firefox для дебага, ибо он разжевывает ошибки для идиотов. Например в данном случае: error: JSON.parse: unexpected non-whitespace character after JSON data.