2012-06-18 3 views
2

У меня есть функция JQuery - это ответ, который он получаетJquery разборе JSON ответ

{"d":"{\"res\":\"\\u003cdiv class=\\\"accordian_head\\\"\\u003e\\u003cdiv class=\\\"plus\\\"\\u003e\\u003c/div\\u00..........."NewTags\":\"\\........ 

, когда ответ только { «d»: «ответ ...»} У меня нет никаких проблем прочитав его в jQuery только с msg.d, но здесь у меня есть «res»: «text» вложен в «d», так как я прочитал res из этого ответа? Я попытался

 success: function (msg) { 
        var obj = unescape(msg.d); 
        var res = unescape(obj.res); 
        var newtags = unescape(obj.NewTags); 

Если образец JSON я вставил в тзд

ответ

2

Как насчет:

$.parseJSON(msg.d) 

Это кавычки экранирования в и разобрать строку JSON.

+0

Я пробовал parseJSON (msg.d) - Мне не хватало $, это отлично работает! –

1

, когда вы получаете d, он возвращает строку. Вам нужен объект, чтобы затем получить доступ к свойству res. Попробуйте это:

success: function (msg) { 
        var obj = eval(unescape(msg.d)); 
        var res = unescape(obj.res); 
        var newtags = unescape(obj.NewTags); 

В зависимости от того, что делает экранирования в, вы можете попробовать просто eval(msg.d)

Если Eval не работает, попробуйте jQuery.parseJSON

0

Вы должны будете бежать msg.d через $.parseJSON().

Было бы даже лучше, если бы вы могли настроить скрипт сервера, чтобы вместо этого вставить его как вложенный JSON.

Смежные вопросы