Работа с JSON в ActionScript 3.0

Уроки по PHP, Javascript и т.п.

Работа с JSON в ActionScript 3.0

Сообщение Александр » 27 июн 2010, 16:49

Работа с 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.
topic673-10.html#p37680
  1. /*
  2.  
  3. http://flapps.ru/forum/ - форум о создании флеш приложений с использованием API различных социальных сетей
  4.  
  5. */
  6. package {
  7.     import flash.display.*;
  8.     // импортируем библиотеку JSON
  9.     import com.adobe.serialization.json.JSON;
  10.  
  11.     public class Main extends Sprite {
  12.         public function Main():void {
  13.             // я присваиваю переменной json_str строку JSON. В реальном случае, эти данные можно получить подгрузив их. О том как это сделать - topic102.html
  14.             var json_str='[{"uid": "1","first_name": "Имя","last_name": "Фамилия", "location": {"country": "Россия","city": "Санкт-Петербург"} },{"uid": "2","first_name": "Имя2","last_name": "Фамилия2","location": {"country": "Франция","city": "Париж"} }]';
  15.             // преобразуем строку в json
  16.             var json_data:Array=JSON.decode(json_str);
  17.  
  18.             // выводим данные отдельно
  19.             trace(json_data[0].uid);
  20.             trace(json_data[0].first_name);
  21.             trace(json_data[0].last_name);
  22.             trace(json_data[0].location.country);
  23.             trace(json_data[0].location.city);
  24.  
  25.             trace(json_data[1].uid);
  26.             trace(json_data[1].first_name);
  27.             trace(json_data[1].last_name);
  28.             trace(json_data[1].location.country);
  29.             trace(json_data[1].location.city);
  30.  
  31.             // перебираем все данные
  32.             for (var key:Object in json_data) {
  33.                 trace(json_data[key].uid);
  34.                 trace(json_data[key].first_name);
  35.                 trace(json_data[key].last_name);
  36.                 trace(json_data[key].location.country);
  37.                 trace(json_data[key].location.city);
  38.             }
  39.         }
  40.     }
  41. }



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


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


Исходник Чтобы увидеть ссылку - зарегистрируйтесь

За это сообщение автора Александр поблагодарили - 3:
Garrat, lewka151, Skaler
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



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

Сообщение lewka151 » 27 июн 2010, 19:16

супер!
спасибо за урок
 Атака шариков
Аватара пользователя
lewka151

 
Сообщения: 54
Зарегистрирован: 16 фев 2010, 21:01
Откуда: http://vkontakte.ru/id20138940
Благодарил (а): 6 раз.
Поблагодарили: 8 раз.

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

Сообщение paduchin » 27 июн 2010, 21:02

Спасибо огромое :D
Как раз таки хотел заняться изучение JSON
Изображение
Аватара пользователя
paduchin
FL Team
FL Team
 
Сообщения: 318
Зарегистрирован: 01 мар 2010, 14:20
Откуда: Миасс
Благодарил (а): 10 раз.
Поблагодарили: 16 раз.

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

Сообщение Conso » 28 июн 2010, 20:53

А где указывается апи формат? При запросе?
Conso

 
Сообщения: 3
Зарегистрирован: 28 июн 2010, 20:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение paduchin » 28 июн 2010, 21:12

Ну он как бы здесь не нужен. Мы ведь не заливаем исходник в контакт
Изображение
Аватара пользователя
paduchin
FL Team
FL Team
 
Сообщения: 318
Зарегистрирован: 01 мар 2010, 14:20
Откуда: Миасс
Благодарил (а): 10 раз.
Поблагодарили: 16 раз.

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

Сообщение Александр » 28 июн 2010, 22:30

Conso
Если в контакте хочешь получить ответ в json формате, то указываешь вместе с другими параметрами в сигнатуре и в запросе: format=json.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Сообщение alexei » 29 июн 2010, 00:55

  1. var a=API.getProfiles({"uids":"1","fields":"city,sex,bdate,education"});
  2. return {"t":a,city:API.getCities({"cids":a@.city})@.name,"country":API.getCountries({cids:1})@.name};

Шлю запрос.

На выходе:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <response>
  3.  <t list="true">
  4.   <item>
  5.    <uid>1</uid>
  6.    <first_name>Павел</first_name>
  7.    <last_name>Дуров</last_name>
  8.    <city>2</city>
  9.    <sex>2</sex>
  10.    <bdate>10.10.1984</bdate>
  11.    <university>1</university>
  12.    <university_name>СПбГУ</university_name>
  13.    <faculty>0</faculty>
  14.    <faculty_name/>
  15.    <graduation>2006</graduation>
  16.   </item>
  17.  </t>
  18.  <city list="true">
  19.   <item>Санкт-Петербург</item>
  20.  </city>
  21.  <country list="true">
  22.   <item>Россия</item>
  23.  </country>
  24. </response>


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

Или что-то подобное?
Последний раз редактировалось alexei 29 июн 2010, 19:26, всего редактировалось 1 раз.
http://appslessons.com/ — Мой блог посвященный урокам приложений ВКонтакте
Аватара пользователя
alexei
Разработчик
Разработчик
 
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44
Откуда: Rostov-on-Don
Благодарил (а): 5 раз.
Поблагодарили: 54 раз.

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

Сообщение Александр » 29 июн 2010, 18:50

alexei
Как это связано с JSON?
С этим вопросом тебе в раздел по API, и с подробным описанием. Не понятно с помощью чего ты отправляешь такой запрос.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Сообщение alexei » 29 июн 2010, 19:24

execute построен на JSON, ладно задам вопрос там. Не хотелось создавать от дельную тему.
http://appslessons.com/ — Мой блог посвященный урокам приложений ВКонтакте
Аватара пользователя
alexei
Разработчик
Разработчик
 
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44
Откуда: Rostov-on-Don
Благодарил (а): 5 раз.
Поблагодарили: 54 раз.

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

Сообщение alexei » 31 июл 2010, 15:09

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

Как здесь читать?
http://appslessons.com/ — Мой блог посвященный урокам приложений ВКонтакте
Аватара пользователя
alexei
Разработчик
Разработчик
 
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44
Откуда: Rostov-on-Don
Благодарил (а): 5 раз.
Поблагодарили: 54 раз.

След.

Вернуться в Уроки на другие темы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0