php 难题 ecshop 解析json出错

$_POST['goods'] = {"1472":{"number":"3","price":"109.00"},"1471":{"number":"3","price":"170.00"}}

$_POST['goods'] = trim(stripslashes(json_str_iconv($_POST['goods'])));

include_once('../includes/cls_json.php');
$json = new JSON;
$goods = $json->decode($_POST['goods']);

报错<br />
<b>Catchable fatal error</b>: Object of class stdClass could not be converted to string in <b>D:\test\mall\includes\lib_base.php</b> on line <b>692</b><br />

ecshop是否没法解析二维json

第1个回答  2013-07-26
错误提示是说,无法将一个对象转换成字符串。
你看看692行是什么。
我看贴出的代码,初步分析是这样,
$_POST['goods']原来是一个对象,
那么出错应该就是
$_POST['goods'] = trim(stripslashes(json_str_iconv($_POST['goods'])));
这行,
json_str_iconv只是将传进的参数里的字符串转码,返回结果还是跟传进的参数同类型。
而stripslashes接收传进的参数只能是string类型。
第2个回答  2013-07-26
$_POST['goods'] = {"1472":{"number":"3","price":"109.00"},"1471":{"number":"3","price":"170.00"}}

这里要加引号,在php里面,json不是对象。只是一个字符串,所以要用引号括起来。
第3个回答  推荐于2017-11-25
你可以以看传到php端的json字符串是不是正确的,我以前遇到过传递过来的字符串中会多 “ \ ”这个符号,要把“ \ ” 去掉才行 。
可以在php端使用:
echo
$json_str;
来show出传递的json字符串,如果发现字符串中出现反斜杠就是要如下方法:

//去除反斜杠
f(ini_get("magic_quotes_gpc")=="1")
{

$json_str=stripslashes($json_str);
}

//php解析json字符串为对象
$json_obj
= json_decode($json_str);

//show出$json_obj数据
var_dump($json_obj);本回答被网友采纳
第4个回答  2013-07-26
可以直接使用php内置的jsonencode函数来解析数组生成json字符串呀
第5个回答  2013-07-26
可以 转换为数组去解析啊!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网