用json_encode()函数对数组进行JSON编码。
目前成都创新互联已为千余家的企业提供了网站建设、域名、虚拟主机、成都网站托管、企业网站设计、侯马网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
?php
$arr = array ('a'=1,'b'=2,'c'=3,'d'=4,'e'=5);
echojson_encode($arr);
?
以上例程会输出:
{"a":1,"b":2,"c":3,"d":4,"e":5}[1]
当有中文字符时,当直接使用json_encode() 函数会使汉字不能正常显示。 所以有了这个适用性比较广的函数 ch_json_encode() 来解决这个问题。
错误提示是说,无法将一个对象转换成字符串。
你看看692行是什么。
我看贴出的代码,初步分析是这样,
$_POST['goods']原来是一个对象,
那么出错应该就是
$_POST['goods'] = trim(stripslashes(json_str_iconv($_POST['goods'])));
这行,
json_str_iconv只是将传进的参数里的字符串转码,返回结果还是跟传进的参数同类型。
而stripslashes接收传进的参数只能是string类型。
有可能是无效的json文件,请给更多的错误提示信息以便分析问题
?php
define('MY_JSON_SLICE', 1);
define('MY_JSON_IN_STR', 2);
define('MY_JSON_IN_ARR', 3);
define('MY_JSON_IN_OBJ', 4);
define('MY_JSON_IN_CMT', 5);
define('MY_JSON_LOOSE_TYPE', 16);
define('MY_JSON_SUPPRESS_ERRORS', 32);
class MY_JSON
{
function MY_JSON($use = 0)
{
$this-use = $use;
}
function utf162utf8($utf16)
{
if (function_exists('mb_convert_encoding')) {
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
}
$bytes = (ord($utf16{0}) 8) | ord($utf16{1});
switch (true) {
case ((0x7F $bytes) == $bytes):
return chr(0x7F $bytes);
case (0x07FF $bytes) == $bytes:
return chr(0xC0 | (($bytes 6) 0x1F)) . chr(0x80 | ($bytes 0x3F));
case (0xFFFF $bytes) == $bytes:
return chr(0xE0 | (($bytes 12) 0x0F)) . chr(0x80 | (($bytes 6) 0x3F)) . chr(0x80 | ($bytes 0x3F));
}
return '';
}