用json_encode()函數(shù)對數(shù)組進(jìn)行JSON編碼。
目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、侯馬網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
?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]?
當(dāng)有中文字符時(shí),當(dāng)直接使用json_encode()?函數(shù)會使?jié)h字不能正常顯示。?所以有了這個(gè)適用性比較廣的函數(shù)?ch_json_encode()?來解決這個(gè)問題。
錯(cuò)誤提示是說,無法將一個(gè)對象轉(zhuǎn)換成字符串。
你看看692行是什么。
我看貼出的代碼,初步分析是這樣,
$_POST['goods']原來是一個(gè)對象,
那么出錯(cuò)應(yīng)該就是
$_POST['goods'] = trim(stripslashes(json_str_iconv($_POST['goods'])));
這行,
json_str_iconv只是將傳進(jìn)的參數(shù)里的字符串轉(zhuǎn)碼,返回結(jié)果還是跟傳進(jìn)的參數(shù)同類型。
而stripslashes接收傳進(jìn)的參數(shù)只能是string類型。
有可能是無效的json文件,請給更多的錯(cuò)誤提示信息以便分析問題
?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 '';
}