[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с json в Chrome, Safari
skolozhabskiy
доброе утро!

через ajax передаю клиенту данные в json, все отлично передается:


var arr_status = new Array();
$.ajax({
url: "ajax/ajax-test.php",
cache: false,
dataType: 'json',
data: ({ передача каких-то данных }),
success: function( data ) {
arr_status = data.status;
}
}
);


массив status типа json имеет вид (скопировал из firebug FF):


status ["0", "0", "1", "0", "0", "0", "0", "0", "0"]

0 "0"
1 "0"
2 "1"
3 "0"
4 "0"
5 "0"
6 "0"
7 "0"
8 "0"


в результате в функции success ajax я получаю data.status вида 0,0,1,0,0,0,0,0,0

проблема в том, что Опера и FireFox интерпретируют json нормально т.е.:


arr_status[0]=0
arr_status[1]=0
arr_status[2]=1
arr_status[3]=0
и так далее


а вот Chrome, Safari интерпретируют этот же массив как:


arr_status[0]=0
arr_status[1]=, // знак запятая
arr_status[2]=1
arr_status[3]=, // знак запятая
и так далее


то есть получается, что Опера и FireFox воспринимают json как массив, а Chrome, Safari просто читают посимвольно строку json, чередуя значение - запятая - значение - запятая и так далее.

как решить данную проблему в Chrome, Safari, чтобы они воспринимали json как массив, а не как строку?

P.S. parse Json не предалагать, парсируется и так все отлично, проблема в интерпретации разными броузерами json как массив.

есть кроссброузерное решение?

спасибо.



Спустя 9 минут, 18 секунд (2.10.2011 - 10:09) alex12060 написал(а):
skolozhabskiy

Какая версия ЖК? (JQuery)

Спустя 15 минут (2.10.2011 - 10:24) skolozhabskiy написал(а):
самая последняя и самая свежая, дело в не в версии Query и JS (6).

есть еще какие-нибудь идеи.

спасибо

Спустя 4 минуты, 20 секунд (2.10.2011 - 10:29) Michael написал(а):
Формируешь json с помощью json_encode?

Покажи саму строку ответ (на вкладке сеть фаербага)

Спустя 8 минут, 54 секунды (2.10.2011 - 10:38) skolozhabskiy написал(а):
спасибо за ответ,

1.я уже написал, что все передается великолепно! да, использую json_encode. проблема не здесь. пожалуйста, не нужно разбирать передачу json, так как с ней полный порядок.

2. строку из FB я уже привел в самом первом посте. вот в таком виде я получаю json

речь исключительно о том, почему Опера и FireFox воспринимают json как массив, а Chrome, Safari просто читают посимвольно строку json и как их заставить восприниать json как массив?

спасибо

Спустя 8 минут, 42 секунды (2.10.2011 - 10:46) Michael написал(а):
Цитата
почему Опера и FireFox воспринимают json как массив, а Chrome, Safari просто читают посимвольно строку json?

то есть ты уже определил что хром и сафари читают как строку. И хочешь чтобы тебе объяснили почему. А дело в том что так не должно быть и они не читают json как строку и ошибку надо искать в другом. Но ты на уточняющие вопросы не реагируешь, так что помогай себе сам.

Спустя 9 минут, 1 секунда (2.10.2011 - 10:55) skolozhabskiy написал(а):
Michael

во-первых, на какие уточняющие вопросы я не ответил? на ваши я ответил полностью, в первом посте скопирован ответ json от firebug и передаю с помощью json_encode иначе никакой передачи вообще не было бы (если вы конечно сами понимаете суть передачи json). в двух браузерах все отлично получаю, если бы была проблема с передачей, то она была бы проблемой для всех браузеров! вы это понимаете?

во-вторых, вопрос не о том чтобы мне объяснили, а о том кто сталкивался с подобным.

это ведь не исключительный случай и вопрос по-моему очень интересный для большинства программистов.

спасибо за ответ

Спустя 40 минут, 58 секунд (2.10.2011 - 11:36) skolozhabskiy написал(а):
проверил на валидность json (http://jsonformatter.curiousconcept.com/):

status ["0", "0", "1", "0", "0", "0", "0", "0", "0"]


результат :


[
"0",
"0",
"1",
"0",
"0",
"0",
"0",
"0",
"0"
]


результат : ответ валидный.

так что с передачей я так полагаю все в порядке. а вот с интерпретацией как быть в Chrome и Safari?

спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.