2013-07-19 4 views
0

Я использую плагин JSTree для отображения строгой структуры отдела. Serverside (asp.net 3.5) работает хорошо, и я получаю объект JSON.jsTree JSON parse issue

Но когда я пытаюсь:

$(document).ready(function() { 
    $('#btntst').click(function() { 
     $('#mainDiv').html('wait for data'); 
     $.ajax({ 
      type: 'POST', 
      url: '_layouts/GridView/ApplicationPage1.aspx/getTable', 
      contentType: "application/json; charset=utf-8", 
      dataType: 'json', 
      data: "{}", 
      success: function (msg) { 
       $('#jsTreeContainer').jstree({ 
        "json_data": { 
         "data": [msg.d] 
        } 
        , "plugins": ["themes", "json_data"] 
       }); 
      } 
      , timeout: 60000 
     }); 
    }); 

}); 

я получаю только один узел со всеми строками JSON в нем.
JSON-строка, возвращаемая WebMethod является:

{ 
    'data': 'department001', 
    'attr': { 
    'id': 'nodeid1773' 
    }, 
    'children': [ 

    ] 
}, 
{ 
    'data': 'department001', 
    'attr': { 
    'id': 'nodeid1779' 
    }, 
    'children': [ 

    ] 
} 

Если я скопировать и вставить эту строку:

"json_data": {"data" : [...] } 

Я получаю правильный результат. Просьба помочь, не может получить то, что я делаю неправильно.

ответ

1

Ваш скрипт ищет объект JSON типа json_data, но нормальный ответ - data. Посмотрите, не работают ли эти изменения:

$(document).ready(function() { 
    $('#btntst').click(function() { 
     $('#mainDiv').html('wait for data'); 
     $.ajax({ 
      type: 'POST', 
      url: '_layouts/GridView/ApplicationPage1.aspx/getTable', 
      contentType: "application/json; charset=utf-8", 
      dataType: 'json', 
      data: "{}", 
      success: function (msg) { 
       $('#jsTreeContainer').jstree({ 
        "json_data": [msg.d], 
        "plugins": ["themes", "json_data"] 
       }); 
      } 
      , timeout: 60000 
     }); 
    }); 

}); 
+1

У меня ошибка: неперехваченное исключение: ни данные, ни настройки ajax не установлены. в моем firebug. Но ваше предложение дало мне правильное направление: «json_data»: {«data»: [JSON.parse (msg.d)]}, – ailmcm