2013-03-19 5 views
0

привет я новичок в использовании jQuery для чтения файла JSON. Я использую следующий код:.getJSON не обрабатывает файл

$.getJSON('updateProfile.js', function(data) { 
    var Options = []; 
    $.each(data.Options, function(key, val) { 
    alert('we have data for ' + val.id + ' and ' + val.label); 
    }); 

Я использовал инструмент проверки JSON и файл действителен. Я использовал хром и firebug в FF, чтобы подтвердить, что файл получает статус 200. однако, когда я поставил точку прерывания на вызов .getJSON, код обходит.

Я использовал локальный сервер tomcat, а также поставил это на самом деле, все серверы работают одинаково.

Вот JSON Я пытаюсь читать

{"Options":[ 
"title": "User Profile", 
"description": "Your preferences can be modified below. Click on the section on the left. This will present the details on the right. Once you have updated your profile, click the Save button to save your changes.", 
"id": "userprofileStackTabs", 
"children": [ 
    { 
     "id": "up001", 
     "linkID": "namePhones", 
     "label": "Name and Phones", 
     "description": "", 
     "default": "true" 
    }, 
    { 
     "id": "up002", 
     "linkID": "password", 
     "label": "Password", 
     "description": " " 
    }, 
    { 
     "id": "up003", 
     "linkID": "physAddrss", 
     "label": "Physical Address", 
     "description": " " 
    }, 
    { 
     "id": "up004", 
     "linkID": "dfShippingAddrss", 
     "label": "Default Shipping Address", 
     "description": " " 
    }, 
    { 
     "id": "up005", 
     "linkID": "cpgnPref", 
     "label": "Campaign Preferences", 
     "description": " " 
    }, 
    { 
     "id": "up006", 
     "linkID": "appPref", 
     "label": "Application Preferences", 
     "description": " " 
    }, 
    { 
     "id": "up007", 
     "linkID": "langPref", 
     "label": "Language Preferences", 
     "description": " " 
    }, 
    { 
     "id": "up008", 
     "linkID": "agentLic", 
     "label": "Agent Licenses", 
     "description": " " 
    }, 
    { 
     "id": "up009", 
     "linkID": "searchPref", 
     "label": "Search Preferences", 
     "description": " " 
    }, 
    { 
     "id": "up010", 
     "linkID": "socMedAcct", 
     "label": "Social Media Accounts", 
     "description": " " 
    } 
], 
"buttons": [ 
    { 
     "id": "upButn_Save", 
     "label": "Save" 
    }, 
    { 
     "id": "upButn_Cancel", 
     "label": "Cancel" 
    } 
] 

]}

Любая помощь будет принята с благодарностью.

+3

Youre JSON искажен. Вы не можете иметь строковые ключи внутри массива '[]'. – prodigitalson

+0

добавить обратный вызов ошибки ('$ .getJSON (...). Fail (function() {console.log (arguments);});') и проверить аргументы. –

+0

Какой инструмент проверки json вы использовали, чтобы я не предлагал его? (если он действительно говорит, что данный json действителен) –

ответ

0

я не уверен, почему вы создаете, что параметры массива внутри $ .get .which я думаю, что не нужно, и ваш не использовать его вообще ...

попробовать это

$.each(data.Options[0].children, function(key, val) { 
    alert('we have data for ' + val.id + ' and ' + val.label); 
}); 

вы являетесь tyring, чтобы получить идентификатор и ярлык дочерних элементов, который находится внутри массива опций [0] .. так что пройдите через массив chilren obecjt и получите его.

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