Интернет магазин китайских планшетных компьютеров



Компьютеры - JSON - JSON Schema

02 июня 2011


Оглавление:
1. JSON
2. Синтаксис
3. Сравнение с YAML
4. JSON Schema
5. Вопросы безопасности
6. JSONP & JSONPP
7. Ссылки на объекты



JSON Schema — один из языков описания структуры JSON документа. Использует синтаксис JSON. Базируется на концепциях XML Schema, RelaxNG, Kwalify. JSON Schema — самоописательный язык: при его использовании для обработки данных и описания их допустимости могут использоваться одни и те же инструменты сериализации/десериализации.

Использование JSON в Ajax

Следующий пример Javascript-кода показывает, как браузер может использовать XMLHttpRequest, чтобы запрашивать с сервера объект в формате JSON.

var the_object;
var http_request = new XMLHttpRequest;
http_request.open;
http_request.send;
http_request.onreadystatechange = function  {
    if  {
        if  {
            the_object = eval" );
        } else {
            alert;
        }
        http_request = null;
    }
};

Заметим, что данный пример применения XMLHttpRequest не является универсальным для всех браузеров. Возможности применения XMLHttpRequest ограничены из-за правила ограничения домена: URL ответа на запрос должен находиться в том же DNS домене, что и сервер, на котором находится страница, запрашивающая ответ. В качестве альтернативы применяется подход JSONP, включающий в себя использование закодированного вызова функции, передающегося между клиентом и сервером, чтобы клиент мог загружать закодированные в JSON данные со сторонних доменов, и уведомлять о завершении вызывающую сторону, хотя это приводит к некоторым рискам для безопасности и дополнительным требованиям к серверу.

Как вариант, в коде страницы можно использовать элементы <iframe> для асинхронного запроса JSON данных, или просто <form action="url_to_cgi_script" target="name_of_hidden_iframe"> . Эти подходы были распространены до появления широкой поддержки XMLHttpRequest.

Также можно использовать для передачи JSON-данных динамические тэги <script>. С помощью этого метода можно обойти правило ограничения домена, но он приводит к появлению уязвимого кода. В качестве более безопасной альтернативы было предложено использовать JSONRequest.



Просмотров: 10069


<<< LDIF