如何从json_encode获得数据?如何使用AJAX获得响应


How to get data from json_encode?How to get respone by using AJAX?

我想从这个json_encode响应中获得使用和它在php中的状态。我怎么得到它?json_encode(array('online' => $status))

  {"online":[{"user":"1004","status":"Unmonitored"},
  {"user":"1005","status":"Unmonitored"},
  {"user":"1006","status":"Unmonitored"},
  {"user":"2501","status":"Unmonitored"},
  {"user":"2502","status":"Unmonitored"},
  {"user":"2503","status":"Unmonitored"},
  {"user":"2504","status":"Unmonitored"}]}

似乎json_decode是您正在寻找的功能。

<?php
$data = '{"online":[
    {"user":"1004","status":"Unmonitored"},
    {"user":"1005","status":"Unmonitored"},
    {"user":"1006","status":"Unmonitored"},
    {"user":"2501","status":"Unmonitored"},
    {"user":"2502","status":"Unmonitored"},
    {"user":"2503","status":"Unmonitored"},
    {"user":"2504","status":"Unmonitored"}
]}';
// json_decode produces stdClass object
$decoded_std = json_decode($data);
var_dump($decoded_std->online[0]->status); // "Unmonitored"
// json_decode produces associative array
$decoded_array = json_decode($data, true); // note the second param
var_dump($decoded_array['online'][0]['status']); // "Unmonitored"

查看托管的工作示例在这里http://ideone.com/xaCx4E.

PHP 5.4为json_encode()调用提供了JSON_PRETTY_PRINT选项。

http://php.net/manual/en/function.json-encode.php

<?php

$json_string = json_encode($data, JSON_PRETTY_PRINT);

?>

您可以使用json_decode()函数解码JSON,如下所示:

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
(json_decode($json);    
?>
另一个例子(读取一个特定的对象):
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$obj = json_decode($json); //read a specific object
print $obj->{'a'}; // 1
?>

UPDATE我看到你更新了你的问题'如何通过使用AJAX获得响应?'

          //start ajax request
            $.ajax({
                url: "data.json",
                success: function(data) {
                    //data downloaded so we call parseJSON function 
                    //and pass downloaded data
                    var json = $.parseJSON(data);
                        //do what you want to do here
                }
            });