Обсуждение:JSON

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Нет описания типов данных 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)[ответить]

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)[ответить]

Потратил уйму времени, из-за того, что во всём инете примеры со вставкой аякса, когда не разбираешься в яваскрипте, сложно понять сходу ошибку, особенно, когда она не логично выглядит, и поисковик выдаёт один мусор. А именно, во всех примерах даётся:

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.
>регистрозависимость
Она везде есть. Ну кроме васика.