json_decode在PHP中不起作用

时间:2014-12-29 10:33:01

标签: php json

我有这个json_encode数据:

{\"MOT:D44-538JK\":{\"productid\":\"MOT:D44-538JK\",\"qty\":\"1\"}}

当我在上面的字符串上使用json_decode时,它无效。任何人都可以协助需要传递的参数。

5 个答案:

答案 0 :(得分:1)

您的数据已经编码。

php > var_dump(json_decode("{\"MOT:D44-538JK\":{\"productid\":\"MOT:D44-538JK\",\"qty\":\"1\"}}", true));
array(1) {
  'MOT:D44-538JK' =>
  array(2) {
    'productid' =>
    string(13) "MOT:D44-538JK"
    'qty' =>
    string(1) "1"
  }
}

答案 1 :(得分:1)

JSON无法验证。在此测试:http://jsonlint.com 这样做,所以斜线需要去。

{
    "MOT:D44-538JK": {
        "productid": "MOT: D44-538JK",
        "qty": "1"
    }
}

答案 2 :(得分:0)

删除" \"来自jsonstring

<?php 
    $c = '{"MOT:D44-538JK":{"productid":"MOT:D44-538JK","qty":"1"}}';
    $r = json_decode($c);
    echo "<pre>";
    print_r($r);

?>

答案 3 :(得分:0)

我认为你的JSON有填充。请删除填充然后进一步处理:

$json=preg_replace('/.+?({.+}).+/','$1',$json); 

// now, process the JSON string 

$result = json_decode($body); 

答案 4 :(得分:0)

  

试试这个

$Json = '{"MOT:D44-538JK":{"productid":"MOT:D44-538JK","qty":"1"}}';
$jsonDec = json_decode($Json, true);
var_dump($jsonDec);
  

OUTPUT像这样:

array (size=1)
'MOT:D44-538JK' => 
array (size=2)
  'productid' => string 'MOT:D44-538JK' (length=13)
  'qty' => string '1' (length=1)