Страница 1 из 2

Работа с 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.
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

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

Добавлено: 27 июн 2010, 19:16
lewka151
супер!
спасибо за урок

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

Добавлено: 27 июн 2010, 21:02
paduchin
Спасибо огромое :D
Как раз таки хотел заняться изучение JSON

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

Добавлено: 28 июн 2010, 20:53
Conso
А где указывается апи формат? При запросе?

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

Добавлено: 28 июн 2010, 21:12
paduchin
Ну он как бы здесь не нужен. Мы ведь не заливаем исходник в контакт

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

Добавлено: 28 июн 2010, 22:30
Александр
Conso
Если в контакте хочешь получить ответ в json формате, то указываешь вместе с другими параметрами в сигнатуре и в запросе: format=json.

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

Добавлено: 29 июн 2010, 00:55
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>
Или что-то подобное?

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

Добавлено: 29 июн 2010, 18:50
Александр
alexei
Как это связано с JSON?
С этим вопросом тебе в раздел по API, и с подробным описанием. Не понятно с помощью чего ты отправляешь такой запрос.

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

Добавлено: 29 июн 2010, 19:24
alexei
execute построен на JSON, ладно задам вопрос там. Не хотелось создавать от дельную тему.

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

Добавлено: 31 июл 2010, 15:09
alexei
А если строка, такого вида:

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

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