0

我在 php 中有闲置字符串:

    $code = "[[],["Mon","01","  1.7","  8","3"," 96","33","
29.01.2013"],["Tue","01","  0.3"," 24","2","100","16","
30.01.2013"],["Wed","01","  5.4"," 28","2"," 98","5","
31.01.2013"],["Thu","01","  8.7"," 22","3"," 92","23","
01.02.2013"],["Fri","01","  5.1"," 43","3"," 91","22","
02.02.2013"],["Sat","01","  2.8"," 18","2"," 90","22","
03.02.2013"],["Sun","01","  2.1"," 31","6"," 93","34","
04.02.2013"]]";

现在我尝试用 json_decode 解码这个字符串。但结果就是这个:

NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL

要输出的代码是这样的:

$code = json_decode($code);
print_r($code);

为什么这不起作用?这是我第一次遇到 json_decode 问题...

4

3 回答 3

3

假设 的内容$code都在一个字符串中(而不是像现在的语法那样的 php 数组),错误是字符串中有换行符。

["Mon","01","  1.7","  8","3"," 96","33","

请注意,在行尾有一个开放引号 .. 是如何导致 JSON 无效的。

如果你去掉所有的换行符,它确实有效。这是我的证明:

array(8) {
  [0]=>
  array(0) {
  }
  [1]=>
  array(8) {
    [0]=>
    string(3) "Mon"
    [1]=>
    string(2) "01"
    [2]=>
    string(5) "  1.7"
    [3]=>
    string(3) "  8"
于 2013-01-28T16:11:30.563 回答
0

它不起作用,因为它不是有效的 JSON。您可以在这里找到正确的 JSON 格式:http: //www.w3schools.com/json/default.asp

于 2013-01-28T16:10:24.320 回答
0

这似乎不像一个有效的 json 字符串。如果您使用有效的 json 字符串尝试它,您将获得所需的结果,例如

<?php
$code=... //a valid json string
$result=json_decode($code,true); // now $result will contain an associative array
print_r($result);

?>

于 2013-01-28T16:28:58.593 回答