ActionScript 3 错误 JSON 解析输入无效
Posted
技术标签:
【中文标题】ActionScript 3 错误 JSON 解析输入无效【英文标题】:ActionScript 3 error Invalid JSON parse input 【发布时间】:2016-09-10 23:47:19 【问题描述】:我正在尝试通过 JSON 将数据发送到 php 文件,但在尝试将数据转换为 JSON 时出现错误。
我很确定我做对了。有什么建议 ?
这是我的 ActionScript 3 代码:
var dataToSend:Array = new Array();
var data:Object = new Object();
data.callFunction = "getQuestion";
data.numberOfQuestions = "1";
dataToSend.push(data);
trace(data);
var variables:URLVariables = new URLVariables();
variables.data = JSON.stringify(dataToSend);
var url:String = "myurl";
var request:URLRequest = new URLRequest(url);
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.load(request);
loader.addEventListener(Event.COMPLETE, requestComplete);
还有我的 PHP 代码:
if $data[ "callfunction" ] = "getQuestion";
echo("Sent");
【问题讨论】:
你是在 php 端还是在 As3 中得到错误? php 文件长什么样子?它期待什么 json? 感谢您的回复,在 php 端没有出现任何错误,就像 3.我已经添加了我的 php 代码。你介意看看吗? 我对php一无所知,无法对此发表评论。您确定错误 JSON parse 输入是由上面的 As3 代码引起的吗?您没有在发布的代码中调用JSON.parse()
。
【参考方案1】:
您的 ActionScript 3 代码看起来不错,但您的 PHP 代码存在一些问题。
让我们看看。
-
PHP 中的
if
语句类似于AS3 中的语句:
-
equality operator 是
==
而不是assignment 之一(=
)。
-
由于您已使用
POST
方法发送数据,您可以使用PHP 的$_POST
数组来获取它。
-
然后,当您以 JSON 格式发送它时,您可以使用 PHP 端的
decode_json()
函数对其进行解码。
所以你的 PHP 代码可以是这样的:
<?php
if(isset($_POST['data']))
$data = $_POST['data'];
$json_data = json_decode($data);
if($json_data[0]->callFunction == "getQuestion")
echo("Sent");
?>
然后你可以在你的 AS3 requestComplete
函数中得到你的 PHP 脚本的响应:
function requestComplete(e:Event): void
trace(URLLoader(e.target).data); // gives : Sent, for example
...
希望能有所帮助。
【讨论】:
以上是关于ActionScript 3 错误 JSON 解析输入无效的主要内容,如果未能解决你的问题,请参考以下文章