解码JSON输入我在写我的第一个Web服务,我有相关的JSON数据传递的问题。我有两个文件,我的网络服务分为:Controller.php这样,其中包含服务处理器,并service.php,其中包含的类和方法被要求提供服务。错误通过json_decode
这是Controller.php这样收购片段:
我可以参加的请求GET和POST模式(我用得到不需要身份验证方法,如getCategories,getCategoryById,getProducts and getProductById。这些是在寿司餐厅拿到菜类和菜肴的方法。)
对于任何GET请求,一切都按预期工作。我处理POST请求时出现问题。我需要在JSON中获取所有URL参数,因为这是为iOS应用提供服务,而JSON是我们处理数据的方式。
这是从service.php的处理片段:
public function putUser($datos) {
if (!empty($datos)) {
$usuario = json_decode($datos);
$this->log .= implode("/", $usuario) . "\r\n";
在这种情况下,$ DATOS从请求的JSON编码的数据。它接收,作为Controller.php这样$ ID(上面的代码)。因为这是我的第一个Web服务,所以很可能我在这里做的很糟糕,但我有点盲目。
我试过服务处理代码的不同变体。使用json_decode($ datos,true)也不起作用。我得到
“意外令牌<”作为回应,并在原始格式(使用谷歌Chrome高级REST客户端),它说:“”警告:破灭()[
<a href='function.implode'>function.implode</a>
]:无效的参数传入/在线344'上的home/refine/public_html/sushigo/palma/service.php。
我知道SOAP是,通常情况下,要编写自定义这样的代码,但是,现在一个更好的选择,我需要坚持这一代码并执行我的下一个项目一个更好的选择。你能告诉我我做错了什么吗?
你可以发布'$ datos'变量的内容吗?它可能不是有效的JSON字符串。 – Munim 2013-03-15 10:43:32
我发现最常见的问题是,当您的PHP警告打开并且正在被包含在脚本输出中时,将有效的JSON拧紧。 – Emissary 2013-03-15 10:46:45