求帮忙。很奇怪的问题,我想不通了。JSON数组。 本帖最后由 bhjl2006ok 于 2015-01-04 16:17:28 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $s = '[{"id":"9","model":"A2","quantity":"1"},{"id":"8","model":"A1","quantity":"1"}]';print_r(json_decode($s, 1));Array( [0] => Array ( [id] => 9 [model] => A2 [quantity] => 1 ) [1] => Array ( [id] => 8 [model] => A1 [quantity] => 1 ))没有问题你应该贴出未经处理的原始数据,才可能发现问题比如数据库取出的是 $ship_info["product_info"]那就 echo base64_encode($ship_info["product_info"]);贴出结果 下面是显示的结果 echo base64_encode($ship_info["product_info"]);W3smcXVvdDtpZCZxdW90OzomcXVvdDs5JnF1b3Q7LCZxdW90O21vZGVsJnF1b3Q7OiZxdW90O0EyJnF1b3Q7LCZxdW90O3F1YW50aXR5JnF1b3Q7OiZxdW90OzEmcXVvdDt9LHsmcXVvdDtpZCZxdW90OzomcXVvdDs4JnF1b3Q7LCZxdW90O21vZGVsJnF1b3Q7OiZxdW90O0ExJnF1b3Q7LCZxdW90O3F1YW50aXR5JnF1b3Q7OiZxdW90OzEmcXVvdDt9XQ==echo $ship_info["product_info"];[{"id":"9","model":"A2","quantity":"1"},{"id":"8","model":"A1","quantity":"1"}] 原始数据:[{"id":"9","model":"A2","quantity":"1"},{"id":"8","model":"A1","quantity":"1"}]$product_info=str_replace('"','"',$ship_info["product_info"]);//替换转义字符 (双引号)上面的数据是经这个替换的。但为什么JSON里只有一级数据的时候是正常的呢。 $product_info=str_replace('"','"',$ship_info["product_info"]);这行代码的问题。" 这样写一组数据的时候可以用。多组为空" 这样写多组的正常组的。单组的为空 请先看清楚你的真实数据再考虑写代码!$s = 'W3smcXVvdDtpZCZxdW90OzomcXVvdDs5JnF1b3Q7LCZxdW90O21vZGVsJnF1b3Q7OiZxdW90O0EyJnF1b3Q7LCZxdW90O3F1YW50aXR5JnF1b3Q7OiZxdW90OzEmcXVvdDt9LHsmcXVvdDtpZCZxdW90OzomcXVvdDs4JnF1b3Q7LCZxdW90O21vZGVsJnF1b3Q7OiZxdW90O0ExJnF1b3Q7LCZxdW90O3F1YW50aXR5JnF1b3Q7OiZxdW90OzEmcXVvdDt9XQ==';$s = base64_decode($s);$s = html_entity_decode($s);$s = html_entity_decode($s); //多做几遍也无所谓,关键是要一层一层的将 html 转义转回来echo $s;print_r(json_decode($s, 1));[{"id":"9","model":"A2","quantity":"1"},{"id":"8","model":"A1","quantity":"1"}]Array( [0] => Array ( [id] => 9 [model] => A2 [quantity] => 1 ) [1] => Array ( [id] => 8 [model] => A1 [quantity] => 1 )) 字符串允许的最大长度?数组最大长度?SQL语句最大长度? 有没有什么软件,可以查找目录下所有文件,查找文件里某个字符串? 帮我看看这段JS,那有问题调试不出来 想用php做个购物网站btoc,但不知道怎么架构 Yii框架里用pdo操作数据库,怎样获取sqlserver的输出参数 这一段程序能打多少分 求高手解答,PHP代码转成C++代码!!! 如果你有一个代码出问题就把问题退给你的领导你该怎么做! ECSHOP出现以下提示是什么原因,如何修改 急求 thinkphp自动验证 phpunit 代码覆盖率测试问题 问个连表的MYSQL查询语句
print_r(json_decode($s, 1));Array
(
[0] => Array
(
[id] => 9
[model] => A2
[quantity] => 1
) [1] => Array
(
[id] => 8
[model] => A1
[quantity] => 1
))
没有问题你应该贴出未经处理的原始数据,才可能发现问题
比如数据库取出的是 $ship_info["product_info"]
那就 echo base64_encode($ship_info["product_info"]);
贴出结果
echo base64_encode($ship_info["product_info"]);W3smcXVvdDtpZCZxdW90OzomcXVvdDs5JnF1b3Q7LCZxdW90O21vZGVsJnF1b3Q7OiZxdW90O0EyJnF1b3Q7LCZxdW90O3F1YW50aXR5JnF1b3Q7OiZxdW90OzEmcXVvdDt9LHsmcXVvdDtpZCZxdW90OzomcXVvdDs4JnF1b3Q7LCZxdW90O21vZGVsJnF1b3Q7OiZxdW90O0ExJnF1b3Q7LCZxdW90O3F1YW50aXR5JnF1b3Q7OiZxdW90OzEmcXVvdDt9XQ==echo $ship_info["product_info"];
[{"id":"9","model":"A2","quantity":"1"},{"id":"8","model":"A1","quantity":"1"}]
[{"id":"9","model":"A2","quantity":"1"},{"id":"8","model":"A1","quantity":"1"}]
$product_info=str_replace('"','"',$ship_info["product_info"]);//替换转义字符 (双引号)
上面的数据是经这个替换的。
但为什么JSON里只有一级数据的时候是正常的呢。
这行代码的问题。" 这样写一组数据的时候可以用。多组为空
" 这样写多组的正常组的。单组的为空
$s = base64_decode($s);
$s = html_entity_decode($s);
$s = html_entity_decode($s); //多做几遍也无所谓,关键是要一层一层的将 html 转义转回来
echo $s;
print_r(json_decode($s, 1));[{"id":"9","model":"A2","quantity":"1"},{"id":"8","model":"A1","quantity":"1"}]
Array
(
[0] => Array
(
[id] => 9
[model] => A2
[quantity] => 1
) [1] => Array
(
[id] => 8
[model] => A1
[quantity] => 1
))