将JSON字符串内容解析为PHP数组

10

我正在尝试解析一个JSON字符串,但不确定如何操作。这是我要解析为PHP数组的字符串示例。

$json = '{"id":1,"name":"foo","email":"foo@test.com"}';  

有没有一些库可以将id、name和email取出并放入一个数组中?

4个回答

21
可以使用json_decode()来完成,确保将第二个参数设置为true,因为你想要一个数组而不是一个对象。
$array = json_decode($json, true); // decode json

输出:

Array
(
    [id] => 1
    [name] => foo
    [email] => foo@test.com
)

6
尝试使用 json_decode
$array = json_decode('{"id":1,"name":"foo","email":"foo@test.com"}', true);
//$array['id'] == 1
//$array['name'] == "foo"
//$array['email'] == "foo@test.com"

4
$obj=json_decode($json);  
echo $obj->id; //prints 1  
echo $obj->name; //prints foo

将这个放入数组中,只需像这样操作
$arr = array($obj->id, $obj->name, $obj->email);

现在您可以像这样使用它。
$arr[0] // prints 1

2
为什么不使用json_decode的第二个参数呢?现在你失去了数组键,这在这里似乎非常有用。 - mkilmanas

1
你可以使用 json_decode()
$json = '{"id":1,"name":"foo","email":"foo@test.com"}';  

$object = json_decode($json);

Output: 
    {#775 ▼
      +"id": 1
      +"name": "foo"
      +"email": "foo@test.com"
    }

如何使用:$object->id //1
$array = json_decode($json, true /*[bool $assoc = false]*/);

Output:
    array:3 [▼
      "id" => 1
      "name" => "foo"
      "email" => "foo@test.com"
    ]

如何使用:$array['id'] //1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接