PDA

Просмотр полной версии : загрузка JSON файла


areostar
09.11.2013, 15:39
Пытаюсь подгрузить JSON фаил чтоб с ним работать:

var JSON_URL:String = "http://www.qa.trade.spotoption.com/PlatformAjax/getJsonFile/PlatformData.json";
var myJSONURL:URLRequest = new URLRequest(JSON_URL);
myLoader = new URLLoader(myJSONURL);
myLoader.addEventListener("complete", jsonLoaded, false, 0, true);
}

private function jsonLoaded(event:Event):void
{
myLoader.removeEventListener("complete", jsonLoaded);

var myJSON:String = String(myLoader.data);
var json_data:Array=JSON.decode(myJSON);
}
НО получаю ощибку выполнения:
Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: http://www.qa.trade.spotoption.com/PlatformAjax/getJsonFile/PlatformData.json

ссылка на 100% рабочая что делать?

TWETTI
09.11.2013, 15:50
Разместите в корне сайта файл crossdomain.xml.

areostar
09.11.2013, 16:42
Откуда взять или как написать?

Добавлено через 5 минут
тоесть обязательно надо на сервер загрузить?

TWETTI
09.11.2013, 17:05
Создайте файл crossdomain.xml с таким содержанием:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

Положите его либо рядом с вашим json файлом либо в корень сайта.

areostar
09.11.2013, 22:25
Для упращения перенес json файлик к себе в проект. Пишу


public function JSONParser()
{
var JSON_URL:String = "PlatformData.json";
var myJSONURL:URLRequest = new URLRequest(JSON_URL);
myLoader = new URLLoader(myJSONURL);
myLoader.addEventListener("complete", jsonLoaded, false, 0, true);
}

private function jsonLoaded(event:Event):void
{
myLoader.removeEventListener("complete", jsonLoaded);

var myJSON:Object = Object(myLoader.data);
var json_data:Object = JSON.parse(myJSON);

dispatchEvent(new Event("ParserCompleted"));
}

Интересно вот что: в myJSON вес json считывается но в json_data я получаю null. В чем проблема??

TWETTI
10.11.2013, 12:55
В JSON.parse() передается строка. myLoader.data это строка. Делайте так:
var json_data:Object = JSON.parse(myLoader.data);

КорДум
10.11.2013, 13:47
Потому что JSON — это формат записи данных в виде определенной строки, а не тип файла.