Парсинг импортированного JSON файла из AS3

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
Halfist
Сообщения: 1
Зарегистрирован: 05 дек 2011, 01:12

Парсинг импортированного JSON файла из AS3

Сообщение Halfist »

Доброе время суток. Нужна ваша помощь в решении следующей проблемы.

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

import flash.display.*;import com.adobe.serialization.json.JSON; var loader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest("test.json"); // содержимое файла [{"uid": "1","first_name": "qqq","last_name": "xxx", "location": {"country": "zzz","city": "aaa"} },{"uid": "2","first_name": "eee","last_name": "rrr","location": {"country": "ttt","city": "nnn"} }]loader.load(request); var json_str = '[{"uid": "1","first_name": "qqq","last_name": "xxx", "location": {"country": "zzz","city": "aaa"} },{"uid": "2","first_name": "eee","last_name": "rrr","location": {"country": "ttt","city": "nnn"} }]'; var json_data:Array = JSON.decode(json_str); result_tf.text += "Отдельный вывод: \n"; result_tf.text +=  "\nID: " + json_data[0].uid;result_tf.text +=  "\nИмя: " + json_data[0].first_name;result_tf.text +=  "\nФамилия: " + json_data[0].last_name;result_tf.text +=  "\nСтрана: " + json_data[0].location.country;result_tf.text +=  "\nГород: " + json_data[0].location.city; result_tf.text +=  "\nID: " + json_data[1].uid;result_tf.text +=  "\nИмя: " + json_data[1].first_name;result_tf.text +=  "\nФамилия: " + json_data[1].last_name;result_tf.text +=  "\nСтрана: " + json_data[1].location.country;result_tf.text +=  "\nГород: " + json_data[1].location.city; result_tf.text += "\n\nМассовый вывод: \n"; for (var key:Object in json_data){    result_tf.text +=  "\nID: " + json_data[key].uid;    result_tf.text +=  "\nИмя: " + json_data[key].first_name;    result_tf.text +=  "\nФамилия: " + json_data[key].last_name;    result_tf.text +=  "\nСтрана: " + json_data[key].location.country;    result_tf.text +=  "\nГород: " + json_data[key].location.city;}
Приведенный выше пример работает, данные выводятся в текстовое поле. Нужно сделать так, чтобы данные загружались из внешнего JSON файла (test.json), который лежит в папке с проектом, а не вписывались напрямую посредством var json_str = ...

Пробовал делать так:

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

var json_str = loader.data;
вместо

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

var json_str = '[{"uid": "1","first_name": "qqq","last_name": "xxx", "location": {"country": "zzz","city": "aaa"} },{"uid": "2","first_name": "eee","last_name": "rrr","location": {"country": "ttt","city": "nnn"} }]';
и получил следующую ошибку:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at com.adobe.serialization.json::JSONTokenizer/nextChar()
at com.adobe.serialization.json::JSONTokenizer()
at com.adobe.serialization.json::JSONDecoder()
at com.adobe.serialization.json::JSON$/decode()
at json2_fla::MainTimeline/frame1()
.

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

Re: Парсинг импортированного JSON файла из AS3

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

Halfist писал(а):Пробовал делать так:
...
вместо
Просто строчку заменил?!
Отправка запроса на сервер, получение данных (AS3, PHP)
Ответить