如何在PHP中解码json?

时间:2014-08-27 18:18:49

标签: php json decode

我有以下json字符串,我想从中检索电子邮件地址。我怎么在PHP中做到这一点?

[{"username":"23441","username":"vanthien","phone":"0293029230"},{"username":"23442","username":"hoangtung","phone":"0599799930"},
{"username":"23443","username":"thanhtung","phone":"069929230"},
{"username":"23444","username":"redlight","phone":"0293299230"},]

感谢。

3 个答案:

答案 0 :(得分:1)

PHP的JSON函数在此处记录:http://us3.php.net/json

json_decode()功能可能特别有用:http://us3.php.net/manual/en/function.json-decode.php

答案 1 :(得分:1)

因此,首先,您的JSON无效。您可以将其复制并粘贴到像

这样的网站中

http://jsonlint.com/

帮助解决这个问题。 (你最后有一个逗号。另一个问题是,你在每个条目上有两个“用户名”条目(一个数字,然后一个字符串),所以第一个将被第二个覆盖。第三,如果您正在寻找一个电子邮件地址,您的JSON不包含任何电子邮件地址。我认为您的意思是用户名。

下面是一些代码,它遍历您的JSON并打印出username的值。

<?php
$json = '[{"username":"23441","username":"vanthien","phone":"0293029230"},{"username":"23442","username":"hoangtung","phone":"0599799930"},
{"username":"23443","username":"thanhtung","phone":"069929230"},
{"username":"23444","username":"redlight","phone":"0293299230"}]';

$arr = json_decode($json);
//echo print_r($arr, true);

foreach ($arr as $value) {
  echo $value->username . PHP_EOL;
}

?>

答案 2 :(得分:0)

验证您的json并提供要提取的电子邮件地址后,您可以使用json_decode

$parsed = json_decode($json, true);

使用 true 标志将创建一个关联数组

$email= $parsed['email'];