JSON (JavaScript Object Notation) - простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript, определенного в стандарте ECMA-262 3rd Edition - December 1999. JSON - текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других. Эти свойства делают JSON идеальным языком обмена данными.
Зачем он нужен?
Обычно для обмена данными используется XML-формат. Потому что для работы с ним в ActionScript 3.0 есть целый пакет классов flash.xml, что облегчает работу с данными. Но имеется один недостаток - это вес данных. В XML-обвязке используются названия узлов и атрибутов, и это в свою очередь значительно увеличивает вес данных при загрузке.
Так вот, в JSON-формате обвязка данных имеет минимальный вес, несмотря на то, что в нем имеются все возможности XML-формата. Также к плюсам можно отнести то, что почти все современные языки программирования поддерживают его в какой-либо форме.
Синтаксис
JSON-объект строится двумя структурами:
- Коллекция пар ключ/значение (В нашем понимании - это Объект).
- Упорядоченный список значений (Массив).
{ "firstName": "Ivan", "lastName": "Ivanov", "address": { "streetAddress": "100 Lenin str., apt. 53", "city": "Moscow", }, "phoneNumbers": [ "+7 123 4567890", "+7 098 7654321" ] }
Как мы уже говорили, что почти все современные языки программирования поддерживают JSON-формат. ActionScript 3.0 не исключение. Имеется специальная библиотека классов от Adobe для работы с различными данными. Называется она as3corelib. Доступна на Google Code.
В ней имеется необходимый нам статический класс JSON.as
Чтобы декодировать строку JSON-формата в объект, необходимо вызвать у одноименного класса метод decode.
var obj:Object = JSON.decode(str);Для того, чтобы преобразовать объект в строку нужно вызывать метод encode.
var str:String = JSON.encode(obj);
Смотрите также:
JSON Энкодер/Декодер от Adobe очень медленный.
ОтветитьУдалитьЕсли нужно парсить большие объемы данных, то лучше использовать JSONLite или JSwoof. Но последний куда-то исчез со своей домашней страницы. JSwoof, кстати говоря, плохо работает с кириллицей. Так что в наверное стоит смотреть в сторону JSONLite.
А еще можно проголосовать за Feature Request https://bugs.adobe.com/jira/browse/FP-1631 , чтобы JSON энкодинг/декодинг стал нативным во флэш плеере.
Спасибо, за информацию :) Обязательно проголосую.
ОтветитьУдалитьКаким же это "начинающим", я запарился библиотеку то подключать
ОтветитьУдалитьРеспект дружище за статью!,
ОтветитьУдалитьбез воды, в двух словах, и все понятно!
У меня http://www.blooddy.by/ru/crypto/ работает быстрее JSONLite. Больше инфы: http://www.flasher.ru/forum/blog.php?b=203
ОтветитьУдалитьVector закодить в JSON не получится?
ОтветитьУдалить