PHP:无法解码字符串

时间:2015-10-27 19:02:08

标签: php json

我编写了这个函数来构建一个JSON样式的字符串:

function createJsonFromResponse($response_json)
{
    // output json
    $output_json = '[';

    // number of steps
    $num_steps = count($response_json['routes'][0]['legs'][0]['steps']);
    //echo $num_steps;

    // fill the json
    for($i = 0; $i<$num_steps; $i++)
    {
        // start parenthesis
        $output_json .= '{';

        // start latitude
        $output_json .= '"start_lat":' . $response_json['routes'][0]['legs'][0]['steps'][$i]['start_location']['lat'] . ',';

        // start longitude
        $output_json .= '"start_lng":' . $response_json['routes'][0]['legs'][0]['steps'][$i]['start_location']['lng'] . ',';

        // end latitude
        $output_json .= '"end_lat":' . $response_json['routes'][0]['legs'][0]['steps'][$i]['end_location']['lat'] . ',';

        // end latitude
        $output_json .= '"end_lng":' . $response_json['routes'][0]['legs'][0]['steps'][$i]['end_location']['lng'] . ',';

        // step length
        $output_json .= '"step_length":' . $response_json['routes'][0]['legs'][0]['steps'][$i]['distance']['value'] . ',';

        // html instruction
        $output_json .= '"instruction":"' . $response_json['routes'][0]['legs'][0]['steps'][$i]['html_instructions'] . '"';

        // closure parenthesis
        $output_json .= '}';


        // insert comma if required
        if($i != $num_steps-1)
            $output_json .= ',';

    }

    $output_json .= ']';
    return $output_json;
}

然后,我将此函数的输出字符串提供给另一个。第二个函数执行这个简单的操作:

$steps_dec = json_decode($steps_txt,true);

其中$steps_txt是我之前生成的字符串。 无论如何,我测试json_decode的输出是 NULL ,而如果在函数生成字符串中我注释添加字符串字段的行,则一切都有效。 它似乎只喜欢数字字段。

你可以发现我的错误吗?

感谢。

1 个答案:

答案 0 :(得分:0)

php中最简单的json

$myJson = array('numbers' => array(1, 2, 3));

echo json_encode($myJson);