Якщо говорити про веб-додатках, в такому ключі він доречний в задачах обміну даними як між браузером і сервером (AJAX), так і між самими серверами (програмні HTTP-інтерфейси).
Оскільки формат JSON є підмножиною синтаксису мови JavaScript, то він може бути швидко десеріалізован вбудованою функцією eval (). Крім того, можлива вставка цілком працездатних JavaScript-функцій. Наприклад в PHP, починаючи з версії 5.2.0, підтримка JSON включена в ядро ??у вигляді функцій json_decode () і json_encode (), які самі перетворять типи даних JSON у відповідні типи PHP і наоборот.строітся на двох структурах:
· Набір пар ключ/значення. У різних мовах це реалізовано як об'єкт, запис, структура, словник, хеш-таблиця, список з ключем або асоціативний масив. Ключем може бути тільки рядок, значенням - будь-яка форма.
· Пронумерований набір значень. У багатьох мовах це реалізовано як масив, вектор, список або послідовність.
Це - універсальні структури даних. Теоретично, всі сучасні мови програмування підтримують їх у тій чи іншій формі. Так як JSON використовується для обміну даними між різними мовами програмування, то має сенс будувати його на цих структурах [8].
У JSON використовуються їх такі форми:
· Об'єкт - це неврегульована безліч пар ім'я/значення, укладену в фігурні дужки {}. Між ім'ям і значенням стоїть символ laquo ;: raquo ;, а пари ім'я/значення розділяються комами.
· Масив (одновимірний) - це безліч значень, що мають порядкові номери (індекси). Масив полягає в квадратні дужки []. Значення відокремлюються комами.
· Значення може бути рядком у подвійних лапках, числом, значенням true або false, об'єктом, масивом, або значенням null. Ці структури можуть бути вкладені один в одного.
· Рядок - це впорядкована множина з нуля або більше символів юникода, укладену в подвійні лапки, з використанням escape-послідовностей починаються собратной косою риси (backslash). Символи представляються простий рядком.
· Ім'я - це рядок.
Рядок дуже схожа на рядок в мовах С і Java. Число теж дуже схоже на С або Java-число, за винятком того, що використовується тільки десятковий формат. Прогалини можуть бути вставлені між будь-якими двома символами [7].
Використання JSON в AJAX
Приклад Javascript-коду (см.приложение 2) показує, як браузер може використовувати XMLHttpRequest, щоб запитувати з сервера об'єкт у форматі JSON (cерверная частина програми опущена; в ній повинен бути розміщений код, що відправляє дані в форматі JSON-рядки у відповідь на запити по url).
Зауважимо, що даний приклад застосування XMLHttpRequest не є універсальним для всіх браузерів (для браузерів, заснованих на Internet Explorer, Opera, Safari і Mozilla, в коді повинні бути ті чи інші відмінності). Можливості застосування XMLHttpRequest обмежені через правила обмеження домену (same origin policy): URL відповіді на запит повинен знаходитися в тому ж DNS домені, що і сервер, на якому знаходиться сторінка, запитуюча відповідь. В якості альтернативи застосовується підхід JSONP, що включає в себе використання закодованого виклику функції, що передається між клієнтом і сервером, щоб клієнт міг завантажувати закодовані в JSON дані зі сторонніх доменів, і повідомляти про завершення зухвалу сторону, хоча це призводить до деяких ризиків для безпеки і додатковим вимогам до сервера.
Як варіант, в коді сторінки можна використовувати елементи lt; iframe gt; для асинхронного запиту JSON даних, або просто lt; form action= url_to_cgi_script target= name_of_hidden_iframe gt;. Ці підходи були поширені до появи широкої підтримки XMLHttpRequest.
Також можна використовувати для передачі JSON-даних динамічні теги lt; script gt ;. За допомогою цього методуможна обійти правило обмеження домену (same origin policy), але він призводить до появи вразливого коду. У якості більш безпечної альтернативи було запропоновано використовувати JSONRequest.
. 1.6 СУБД MySQL
MySQL - вільна реляційна система управління базами даних. Розробку і підтримку MySQL здійснює корпорація Oracle, що отримала права на торговельну марку разом з поглиненої Sun Microsystems, яка раніше придбала шведську компанію MySQL AB. Продукт поширюється як під GNU General Public License, так і під власною комерційною ліцензією. Крім цього, розробники створюють функціональність за замовленням ліцензійних користувачів, саме завдяки такому замовленню майже в найраніших версіях з'явився механізм реплікаціі.является рішенням для малих і середніх додатків. Входить до складу серверів WAMP, AppServ, LAMP і в портативні збірки сервер...