Я декодирую данные, закодированные в json, таким образом.
$data = urldecode(utf8_decode(stripslashes($_REQUEST['data'])));
$decoded_result = json_decode($data);
Кстати: вы добавили соответствующий обработчик событий в ваш экземпляр URLLoader?
[обновление] вот пример, который работает для меня ..
//loader event handler
function ioHandler (evt:IOErrorEvent): void { trace("IOError: "+ evt.text ); }
function httpHandler (evt:HTTPStatusEvent): void { trace("HTTPStatus: "+ evt.status ); }
function completeHandler (evt:Event): void { trace(complete" ); }
var person:Object = new Object();
person.fullname = "jon jay junior";
person.username = "jjj";
person.role = "ADMIN";
var people:Array = new Array();
people.push(person);
var vars: URLVariables = new URLVariables();
vars.data = JSON.encode(people);
var request:URLRequest = new URLRequest();
request.url = "http://localhost/data.php";
request.data = vars;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpHandler);
loader.load(request);
и для серверной части, этот скрипт
//the server side
<?php
$data = urldecode(utf8_decode(stripslashes($_REQUEST['data'])));
$decoded_result = json_decode($data);
print_r($decoded_result);
?>
, который выдает следующее представление "response" в firebug
Array
(
[0] => stdClass Object
(
[username] => jjj
[fullname] => jon jay junior
[role] => ADMIN
)
)
надеюсь, это поможет .. добрейший