Возможно ли, что ваш сервис JsonTest является "двойным экранированием" от json, который отправляется обратно? Как в:
"{\"Test\":\"Hello\"}"
Поскольку у вас есть firebug, вы можете взглянуть на ответ и вставить необработанный текст, который он показывает?
Если ваш сервисный метод возвращает строку, и вы выполняете свою собственную сериализацию, то это определенно так. Я столкнулся с этим недавно. В любом случае, с «двойными кавычками» (или двойными обертками, двойными экранированными, как вы хотите это называть) возвращается json, $ .getJSON () только eval () делает это один раз, превращая "{\"Test\":\"Hello\"}"
в {"Test":"Hello"}
, который действительно все еще требует дополнительного eval ().
Кроме того, не используйте eval (). Используйте JSON.parse()
. Вы можете включить json2.js из http://json.org/,, и JSON.parse () будет либо использовать собственные возможности разбора json в браузере, либо использовать json2.js, если браузер не делает этого изначально.