Обсуждение:JSON
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
Untitled[править код]
Нет описания типов данных JSON - null, true, false, проч...--176.14.252.36 17:46, 28 ноября 2015 (UTC)
Необходимо подправить информацию в главе JSONP и "Объект ссылки" и еще "JSON схемы"", мне для этого не хватило знаний. Глава "Объект ссылки" была просто переведена кем-то переводчиком и практически не правилась. --Dima xp 19:28, 5 июня 2009 (UTC)
Вопросы безопасности тоже просто переведены, надо доработать
Кто-нибудь разбирающийся, исправьте! 90.189.165.69 08:29, 1 июля 2009 (UTC)
- готово --Plest 09:36, 1 июля 2009 (UTC)
Расширил раздел JSONP (теперь JSONP & JSONPP). Добавил объяснения JSONP и добавил подраздел JSONPP Пример JSONPP целиком взят с сайта (#14 в примечаниях), малость поправлен, но это не функционально. Пример очень хорошо раскрывает смысл технологии.--AlexNZwp 08:35, 31 марта 2010 (UTC)
Раздел JSONPP переработан. Теперь больше соответсвует реальности, но, вероятно нужно будет дополнить ещё.--AlexNZwp 08:07, 7 апреля 2010 (UTC)
JSONPP[править код]
ans = JSONP(SRC)
{
eval(JSONPP(ans));
eval(ONLOAD);
}
Что значит этот код? Эта конструкция синтаксически верна, но совершенно неочевидна. Фигурные скобки сработают как блок операторов, а после первой строки неявно вставится точка с запятой из-за переноса строки:
ans = JSONP(SRC);
eval(JSONPP(ans));
eval(ONLOAD);
Может быть, все же что-то другое имелось в виду?
И, кстати, говоря, стиль кода требует доработки, в js нижнимВерблюжимРегистром пишутся переменные, ВерхнимВерблюжим — функции-конструкторы, ВЕРХНИМ — константы. Subzey 08:15, 17 марта 2011 (UTC)
Я вообще сомневаюсь в энциклопедической значимости этого раздела. Никогда не слышал о JSONPP и, более того, абсолютно не понимаю, зачем так делать. Такое ощущение, что кто-то пытается продвинуть свою, скажем прямо, не самую умную идею. К слову, в английской версии статьи про это не сказано ни слова. --46.47.201.146 15:24, 24 октября 2014 (UTC)
JSON и PHP[править код]
Потратил уйму времени, из-за того, что во всём инете примеры со вставкой аякса, когда не разбираешься в яваскрипте, сложно понять сходу ошибку, особенно, когда она не логично выглядит, и поисковик выдаёт один мусор. А именно, во всех примерах даётся:
var data = eval('(' + ajax.responseText + ')');
Но не все используют JSON через аякс, как никак универсальная штука ведь. Потому предлагаю добавить такой пример содействия JSON и PHP:
<?
header("Content-Type: application/x-javascript");
$a = array();
$a['abc'] = 'cba';
$a['xyz'] = 'zyx';
$jsondata = json_encode($a);
?>
var data = eval('(<?echo $jsondata;?>)');
alert(data['abc']); //Выдаст cba
Речь идёт о кавычках, и том как собирается стринг, ошибка вроде детская, но времени может отнять много. 77.181.87.110 04:10, 29 июля 2011 (UTC)
Прошу обратитить внимание, в JSON одинарная кавычка не экранируется. var data = eval('<?php json_encode("foobar's baz") ?>')
работать не будет, var data = <?php json_encode("foobar's baz") ?>
при этом будет себя вести абсолютно нормально.
Subzey 13:15, 10 августа 2011 (UTC)
Использование JSON в Ajax[править код]
var the_object;
var http_request = new XMLHttpRequest();
http_request.open( "GET", url, true );
http_request.send(null);
http_request.onreadystatechange = function () {
if ( http_request.readyState == 4 ) {
if ( http_request.status == 200 ) {
the_object = eval( "(" + http_request.responseText + ")" );
} else {
alert( "There was a problem with the URL." );
}
http_request = null;
}
};
Этот кусок кода лишь показывает, как создаётся асинхронный объект, и к json напрямую он не имеет отношения.
the_object = eval( "(" + http_request.responseText + ")" );
Это ничего не говорит о json. А остальное, вообще не нужно.
95.189.5.134 14:28, 7 октября 2011 (UTC)squirre1
Строка очень похожа на одноимённый тип данных в языках С и Java.[править код]
В Си нет встроенного типа данных для хранения строк. А используемые для этого указатели на массивы символов ограниченные \0, судя по всему, не слишком похожи на Строку в JSON. --95.79.49.191 12:33, 19 июня 2015 (UTC)
Регистрозависимость JSON[править код]
Ссылка на спецификацию JSON RPC (http://www.jsonrpc.org/) как доказательство регистрозависимости JSON некорректна, это производный от JSON формат данных и может накладывать собственные ограничения на чувствительность к регистру. 90.154.66.18 16:26, 9 марта 2017 (UTC)
Нужна критика[править код]
В статье нет критики. Необходимо найти источники, который бы сказали о проблемах. Например, невозможность указания ссылок на структуру или объект, проблему с кодировками и регистрозависимость (как у всего JS в целом). --higimo (обс.) 10:41, 13 сентября 2017 (UTC)
- Кому нужна критика? Вам? Ну давайте покритикую
- >невозможность указания ссылок на структуру или объект
- Вы точно понимаете что такое формат сериализации?
- >проблему с кодировками
- Нету никакой проблемы. Json бывает или в ascii (неаскишные символы кодируются в \uXXXX), или в юникоде, например, utf8 без BOM.
- >регистрозависимость
- Она везде есть. Ну кроме васика.