-2

我的php如下:

<?php
$str = '{
"name": "10.000000,106.000000",
"Status": {
"code": 200,
"request": "geocode"
 },
   "Apps": [ {
"Thread1": 1,
"Thread2": 1   
"Thread3": 1
"Thread4": 1
"Thread5": 1
"Thread6": 1
"Thread7": 1
} ]
}';
echo $str;
?>

当我尝试获取“Ap​​ps”数组时,出现以下异常:

Exception: Expected a ',' or '}' at character 165 of {
"name": "10.000000,106.000000",
"Status": {
"code": 200,
"request": "geocode"
},
"Apps": [ {
 "Thread1": 1,
 "Thread2": 1   
"Thread3": 1
"Thread4": 1
"Thread5": 1
"Thread6": 1
"Thread7": 1
} ]
}

任何人都可以帮助/指出我在指定 JSONArray 时出错的地方吗?谢谢。

4

5 回答 5

0

“ThreadX”后没有逗号:1?

检查这个:http: //jsonlint.com/

于 2013-03-01T11:53:17.243 回答
0

看来您忘记了 THREAD2 ... THREAD6 语句后面的逗号,

只需使用http://jsonlint.com/进行验证。

于 2013-03-01T11:54:56.037 回答
0

尝试:在线程 2 之后忘记了,……依此类推。

<?php
$str = '{
"name": "10.000000,106.000000",
"Status": {
"code": 200,
"request": "geocode"
 },
   "Apps": [ {
"Thread1": 1,
"Thread2": 1,   
"Thread3": 1,
"Thread4": 1,
"Thread5": 1,
"Thread6": 1,
"Thread7": 1
} ]
}';

$arr = json_decode($str);

echo "<pre>";
print_r($arr);

?>
于 2013-03-01T11:55:06.570 回答
0

您不应该使用字符串手动创建 JSON。这是一个坏主意,因为您可以轻松破坏 JSON 格式(正如您所拥有的那样),并且您需要确保正确转义引号。相反,您应该在 PHP 结构中构建数据,然后使用它json_encode()来创建实际的 JSON 字符串:

$array = array(
    'name' => '10.000000,106.000000',
    'Status' => array(
        'code' => 200,
        'request' => 'geocode'
    ),
    'Apps' => array(
        array(
            'Thread1' => 1,
            'Thread2' => 1,
            'Thread3' => 1,
            'Thread4' => 1,
            'Thread5' => 1,
            'Thread6' => 1,
            'Thread7' => 1
        )
    )
);

echo json_encode($array);
于 2013-03-01T12:06:43.057 回答
0
<?php

$str = '{
"name": "10.000000,106.000000",
"Status": {
"code": 200,
"request": "geocode"
 },
   "Apps": [ {
"Thread1": 1,
"Thread2": 1,   
"Thread3": 1,
"Thread4": 1,
"Thread5": 1,
"Thread6": 1,
"Thread7": 1
} ]
}';
echo "<pre>";
print_r(json_decode($str,true));
echo "<pre/>"; 
?>

输出 :

Array
(
    [name] => 10.000000,106.000000
    [Status] => Array
        (
            [code] => 200
            [request] => geocode
        )

    [Apps] => Array
        (
            [0] => Array
                (
                    [Thread1] => 1
                    [Thread2] => 1
                    [Thread3] => 1
                    [Thread4] => 1
                    [Thread5] => 1
                    [Thread6] => 1
                    [Thread7] => 1
                )

        )

)
于 2013-03-01T12:07:29.450 回答