直接上代码,大神可以运行下,只有$arr1被成功解析了,$arr2返回空,不明白为什么?<?php
$str1 = ' {"Id":"87","ck_id":"74","kw_id":"1","zx_type":"wtz","status":1,"data":{"sm_data":[{"sku":"SP_00600002XL","sl":"60"},{"sku":"SP_00600002S","sl":"50"},"pm_data":[]}}';$str2 = ' {"Id":"87","ck_id":"74","kw_id":"1","zx_type":"wtz","status":1,"data":{"sm_data":[],"pm_data":[{"goods_sn":"SP_007","color_code":"00008","color_id_name":"紫罗兰","pm_code":"S\\L(2:4)","pm_sl":"4","pm_wtz_sl":"4","pm_wwc_sl":"4"}]}}';$arr1 = json_decode($str1,true);
echo $str1;
echo "<pre>";
print_R($arr1);echo "</pre>";$arr2 = json_decode($str2,true);
echo $str2;
echo "<pre>";
print_R($arr2);echo "</pre>";
$str1 = ' {"Id":"87","ck_id":"74","kw_id":"1","zx_type":"wtz","status":1,"data":{"sm_data":[{"sku":"SP_00600002XL","sl":"60"},{"sku":"SP_00600002S","sl":"50"},"pm_data":[]}}';$str2 = ' {"Id":"87","ck_id":"74","kw_id":"1","zx_type":"wtz","status":1,"data":{"sm_data":[],"pm_data":[{"goods_sn":"SP_007","color_code":"00008","color_id_name":"紫罗兰","pm_code":"S\\L(2:4)","pm_sl":"4","pm_wtz_sl":"4","pm_wwc_sl":"4"}]}}';$arr1 = json_decode($str1,true);
echo $str1;
echo "<pre>";
print_R($arr1);echo "</pre>";$arr2 = json_decode($str2,true);
echo $str2;
echo "<pre>";
print_R($arr2);echo "</pre>";
echo $str1;
echo "<pre>";
print_r($arr1);echo "</pre>";$arr2 = json_decode($str2,true);
echo $str2;
echo "<pre>";
print_r($arr2);echo "</pre>";
第二个中有汉字,那么必须是 utf-8 编码的才行。json_decode 只认 utf-8 编码的数据
另外 "S\\L(2:4)" 需写作 "S\\\L(2:4)" 才可以识别,当然这是写在程序里测试时才这样。
直接传递到变量的不需要