2013-06-24 3 views
0

Я использую функцию jquery $ .getJson. Он отправляет данные, которые я хочу, и скрипт PHP, создающий JSON, работает так, как должен. Однако проблема, с которой я столкнулась, происходит отсюда.Что не так с моим JSON

В моем $ коде .getJSON, я хочу, чтобы просто записать результаты в случае успеха и войти как ошибка, если ошибка ... Вы уже догадались ... Я получаю сообщение об ошибке ...

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

{ 
"results":{ 
"city":[ 
    "metric":"visits", 
    "dimension":"city", 
    "data":[["London","5"],["Glasgow","3"],["(not set)","1"],["Aberdeen","1"],["Antalya","1"]] 
    ], 

"browser":[ 
    "metric":"visits", 
    "dimension":"browser", 
    "data":[["Internet Explorer","11"],["Chrome","9"],["Firefox","3"],["Safari","3"],["Android Browser","2"]] 
    ], 

"screenResolution":[ 
    "metric":"visits", 
    "dimension":"screenResolution", 
    "data":[["1280x800","5"],["1680x1050","4"],["1024x768","3"],["1366x768","3"],["1280x1024","2"]] 
    ] 
    } 
    } 

ОБНОВЛЕНО ПОКАЗАТЬ кОД

Это мой код, используемый для получение результатов

$.ajax({ 

//DEFINE URL being called by Ajax 
url:'./getAnalytics.php', 
dataType: "json", 
data:{dateToSearch:dateToSearch}, 
success:function(resultsToView){ 

console.log(resultsToView); 


},error:function(resultsToView){ 
console.log("Error: " + resultsToView); 
} 
}); 

И консоль показывает: Result of resultsToView

Когда я получаю эту спину, функция ошибок называется, а не успех. Пожалуйста, помогите.

+0

Что такое код состояния? –

+2

Что такое 'JSONam'? –

+1

Lint it before posting - http://jsonlint.com/ –

ответ

3

JSONявляется недействительным. Квадратные скобки обозначают массив (список), где элементы не имеют ключей. Изменение

[ 
    "metric":"visits", 
    "dimension":"…", 
    … 
] 

к объекта (карта) синтаксис с фигурными скобками:

{ 
    "metric":"visits", 
    "dimension":"…", 
    … 
} 

Кроме того, обратный вызов ошибка имеет подпись Function(jqXHR xhr, String textStatus, String errorThrown). Вы регистрируете строение объекта xhr, что не помогает. Лучшее использование

…, 
error: function(xhr, status, error) { 
    console.log("Error: "+error+" ("+status+")", xhr); 
} 
+0

У него также есть еще два раза для браузера ': [ " metric ":" посещения ",' и '" screenResolution ": [ " metric " : «посещения», ' –

+0

@ ᾠῗᵲ ᄐ ᶌ: Конечно, но я не собираюсь выписывать полный JSON :-) – Bergi

+0

: P, который исправит их все, хотя +1 –

2

Ваш JSON недействителен. Например.

"city":[ 

должно быть:

"city":{ 

[для массивов.

Вы можете использовать валидатор JSON, чтобы проверить, хорошо ли ваш JSON, например. JSONLint

+0

Приятно, что вы также включили ссылку для проверки валидатора – neelsg