Работа с JSON в ActionScript 3.0

Уроки по PHP, Javascript и т.п.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Работа с JSON в ActionScript 3.0

Сообщение Александр »

Работа с JSON в ActionScript 3.0
ActionScript 3.0 (Adobe Flash CS4)

Пример показывает как работать с json в AS3.

JSON - текстовый формат обмена данными. Формат JSON является более кратким по сравнению с XML.

При создании приложений с использованием ВКонтакте API, указав в параметре API format=json, вы будете получать ответ сервера в формате JSON.
При создании приложений с использованием Мой Мир API, по умолчанию ответ в json.

Для работы с JSON в ActionScript 3, используется библиотека com.adobe.serialization.json.JSON. Она находится в архиве с исходником.


Создание приложения

1. Создаём Main.as и пишем код:

Внимание! 07.2012 Начиная с версии FP 11 и выше, класс JSON входит в Top Level Package и у него другие методы - JSON.parse и JSON.stringify.
http://flapps.ru/forum/topic673-10.html#p37680

Код: Выделить всё

/* http://flapps.ru/forum/ - форум о создании флеш приложений с использованием API различных социальных сетей */package {    import flash.display.*;    // импортируем библиотеку JSON    import com.adobe.serialization.json.JSON;     public class Main extends Sprite {        public function Main():void {            // я присваиваю переменной json_str строку JSON. В реальном случае, эти данные можно получить подгрузив их. О том как это сделать - http://flapps.ru/forum/topic102.html            var json_str='[{"uid": "1","first_name": "Имя","last_name": "Фамилия", "location": {"country": "Россия","city": "Санкт-Петербург"} },{"uid": "2","first_name": "Имя2","last_name": "Фамилия2","location": {"country": "Франция","city": "Париж"} }]';            // преобразуем строку в json            var json_data:Array=JSON.decode(json_str);             // выводим данные отдельно            trace(json_data[0].uid);            trace(json_data[0].first_name);            trace(json_data[0].last_name);            trace(json_data[0].location.country);            trace(json_data[0].location.city);             trace(json_data[1].uid);            trace(json_data[1].first_name);            trace(json_data[1].last_name);            trace(json_data[1].location.country);            trace(json_data[1].location.city);             // перебираем все данные            for (var key:Object in json_data) {                trace(json_data[key].uid);                trace(json_data[key].first_name);                trace(json_data[key].last_name);                trace(json_data[key].location.country);                trace(json_data[key].location.city);            }        }    }}

2. Подключаем Main.as к fla
Если не знаете как, то посмотрите в этом уроке http://flapps.ru/forum/topic3.html


3. Экспортируем приложение (Ctrl+Enter).
В окне вывода вы увидите выведенные данные.


Исходник http://flapps.ru/example/json.rar
Аватара пользователя
lewka151
Сообщения: 54
Зарегистрирован: 16 фев 2010, 21:01

Re: Работа с JSON в ActionScript 3.0

Сообщение lewka151 »

супер!
спасибо за урок
Аватара пользователя
paduchin
FL Team
FL Team
Сообщения: 318
Зарегистрирован: 01 мар 2010, 14:20

Re: Работа с JSON в ActionScript 3.0

Сообщение paduchin »

Спасибо огромое :D
Как раз таки хотел заняться изучение JSON
Conso
Сообщения: 3
Зарегистрирован: 28 июн 2010, 20:11

Re: Работа с JSON в ActionScript 3.0

Сообщение Conso »

А где указывается апи формат? При запросе?
Аватара пользователя
paduchin
FL Team
FL Team
Сообщения: 318
Зарегистрирован: 01 мар 2010, 14:20

Re: Работа с JSON в ActionScript 3.0

Сообщение paduchin »

Ну он как бы здесь не нужен. Мы ведь не заливаем исходник в контакт
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Работа с JSON в ActionScript 3.0

Сообщение Александр »

Conso
Если в контакте хочешь получить ответ в json формате, то указываешь вместе с другими параметрами в сигнатуре и в запросе: format=json.
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

Re: Работа с JSON в ActionScript 3.0

Сообщение alexei »

Код: Выделить всё

var a=API.getProfiles({"uids":"1","fields":"city,sex,bdate,education"});return {"t":a,city:API.getCities({"cids":a@.city})@.name,"country":API.getCountries({cids:1})@.name};
Шлю запрос.

На выходе:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?><response> <t list="true">  <item>   <uid>1</uid>   <first_name>Павел</first_name>   <last_name>Дуров</last_name>   <city>2</city>   <sex>2</sex>   <bdate>10.10.1984</bdate>   <university>1</university>   <university_name>СПбГУ</university_name>   <faculty>0</faculty>   <faculty_name/>   <graduation>2006</graduation>  </item> </t> <city list="true">  <item>Санкт-Петербург</item> </city> <country list="true">  <item>Россия</item> </country></response>
Хотелось бы на выходе получать:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?><response> <t list="true">   <uid>1</uid>   <first_name>Павел</first_name>   <last_name>Дуров</last_name>   <bdate>10.10.1984</bdate>   <university>1</university>   <university_name>СПбГУ</university_name>   <faculty>0</faculty>   <faculty_name/>   <graduation>2006</graduation> <city>Санкт-Петербург</city> <country>Россия</country></response>
Или что-то подобное?
Последний раз редактировалось alexei 29 июн 2010, 19:26, всего редактировалось 1 раз.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Работа с JSON в ActionScript 3.0

Сообщение Александр »

alexei
Как это связано с JSON?
С этим вопросом тебе в раздел по API, и с подробным описанием. Не понятно с помощью чего ты отправляешь такой запрос.
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

Re: Работа с JSON в ActionScript 3.0

Сообщение alexei »

execute построен на JSON, ладно задам вопрос там. Не хотелось создавать от дельную тему.
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

Re: Работа с JSON в ActionScript 3.0

Сообщение alexei »

А если строка, такого вида:

Код: Выделить всё

 var str='{"response":350}'; 
Как здесь читать?
Ответить