闪光灯
显示JSON,我试图拉使用JSON数据到闪存,但我不断收到此错误闪光灯
JSONParseError: Unexpected < encountered
at com.adobe.serialization.json::JSONTokenizer/parseError()
at com.adobe.serialization.json::JSONTokenizer/getNextToken()
at com.adobe.serialization.json::JSONDecoder/nextToken()
at com.adobe.serialization.json::JSONDecoder()
at com.adobe.serialization.json::JSON$/decode()
at jsonairtest_fla::MainTimeline/decodeJSON()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
即使我可以RUNT pp的文件浏览器和输出中看起来好像没什么问题,我什至尝试调用一个txt文件,并且工作,但我不知道我在这里做错了什么。
下面是AS3代码
import com.adobe.serialization.json.JSON
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest();
request.url = "pull.php";
loader.load(request);
loader.addEventListener(Event.COMPLETE, decodeJSON);
function decodeJSON(event:Event):void{
var loader2:URLLoader = URLLoader(event.target);
//trace(event.target.data);
var People:Array = JSON.decode(loader2.data);
trace(People[0].NETWORKNAME) ;
trace(People[1].NETWORKNAME) ;
}
PHP代码:
<?php
$host="localhost";
$user="";
$password="";
$database="db name";
$tablename="table name";
header('Content-type: application/json');
if(!$connection = mysql_connect($host,$user,$password))
{
//if connection not eastablished then display message and die
$message = mysql_error();
//echo "$message<br>";
die();
}else
// in case the connection is eastablished
$message = "Connection eastablished.....";
//echo"$message<br>";
mysql_select_db($database,$connection)
or die("database not found");
$query = mysql_query("SELECT NETWORKNAME from $tablename);
$returnArray = array();
while($row=mysql_fetch_assoc($query))
array_push($returnArray, $row);
mysql_close();
echo json_encode($returnArray);
?>
要转换成响应未解码JSON对象的数组,尝试。 :)
我试过这个,我什么也没得到 var jsonArray:Array = loader2.data.match(/\{.*?\}/ gi); var people = new Array(); (var i = 0; i
对不起,它可能需要var jsonArray:Array = String(loader2.data).match(/\{.*?\}/ gi); - 如果这不起作用,请尝试追踪每个属性以查看发生了什么问题(我会尝试自己,但是我在家庭计算机上处于格式化的中间!) – adamk 2010-11-16 18:47:34
还没有发生任何事情:( – hitek 2010-11-16 19:10:26
在你的PHP输出,你要为你的头型,以JSON?
header('Content-type: application/json');
您的解码器可能需要该类型才是正确的。通过调用JSON.decode阵列的每个元件上
var jsonArray:Array = loader2.data.match(/\{.*?\}/gi);
然后简单循环:
错误消息说有一个意想不到的位置<
。
我的猜测是,你无意中从文件系统中读取你的php,而不是在服务器上运行它。您的文件不能作为php代码执行,并且<
可能是您的php脚本的开始标记(<?
或<?php
)。
如果您正在运行从IDE这个代码,您的网址应该是这样的:
htp://localhost/my_project/pull.php
如果你在浏览器中运行这个,你并不需要一个绝对路径,但要确保您的SWF在http环境下运行(当然可以执行php)。也就是说,测试它是这样的:
http://localhost/my_project/index.php
(其中的index.php是嵌入你的SWF文件HMTL)
你能告诉我们的JSON的样本形成的PHP输出? – 2010-11-16 17:03:10
这里是php输出 – hitek 2010-11-16 17:06:57
[{“NETWORKNAME”:“abc”},{“NETWORKNAME”:“xyz”}] – hitek 2010-11-16 17:07:47