Блог от AS3Coder'a о JavaScript, HTML, CSS... и немного о Flash.

среда, 7 апреля 2010 г.

Работа с JSON в ActionScript 3.0

Что такое JSON?

JSON (JavaScript Object Notation) - простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript, определенного в стандарте ECMA-262 3rd Edition - December 1999. JSON - текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других. Эти свойства делают JSON идеальным языком обмена данными.
Взято с сайта www.json.org.

Зачем он нужен?

Обычно для обмена данными используется 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

Как мы уже говорили, что почти все современные языки программирования поддерживают 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);

Смотрите также:

6 комментариев:

  1. JSON Энкодер/Декодер от Adobe очень медленный.
    Если нужно парсить большие объемы данных, то лучше использовать JSONLite или JSwoof. Но последний куда-то исчез со своей домашней страницы. JSwoof, кстати говоря, плохо работает с кириллицей. Так что в наверное стоит смотреть в сторону JSONLite.
    А еще можно проголосовать за Feature Request https://bugs.adobe.com/jira/browse/FP-1631 , чтобы JSON энкодинг/декодинг стал нативным во флэш плеере.

    ОтветитьУдалить
  2. Спасибо, за информацию :) Обязательно проголосую.

    ОтветитьУдалить
  3. Каким же это "начинающим", я запарился библиотеку то подключать

    ОтветитьУдалить
  4. Респект дружище за статью!,
    без воды, в двух словах, и все понятно!

    ОтветитьУдалить
  5. У меня http://www.blooddy.by/ru/crypto/ работает быстрее JSONLite. Больше инфы: http://www.flasher.ru/forum/blog.php?b=203

    ОтветитьУдалить
  6. Vector закодить в JSON не получится?

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например <b>, <i>, <a>

Поиск по блогу

Обо мне



Farid Shamsutdinov (AS3Coder)
Russia, Tatarstan, Kazan
as3coder@gmail.com

Подробнее...

Постоянные читатели

© 2014 Farid Shamsutdinov. При копировании материалов, ссылка на источник обязательна. Технологии Blogger.