这是json代码:
"Results":[{"username":"test","password":"test"},{"username":"test","password":"test"},{"username":"google","password":"test"},{"username":"yahoo","password":"test"}]}
您可以看到它包含多个值。我想在这段代码中搜索。
我想获取用户名:google
的密码有没有办法用PHP做到这一点?
答案 0 :(得分:3)
json代码是一种数据表示。您可以将其视为字符串,并使用php的字符串解析函数来获取所需内容,或者将其加载到数组或对象中。我将重点关注数组方法,因为它维护了JSON旨在表示的结构。有一个函数json_decode()将把你的json转换成一个数组:
$jsondata = '{"Results":[{"username":"test","password":"test"},
{"username":"test","password":"test"},
{"username":"google","password":"test"},
{"username":"yahoo","password":"test"}]}';
$jsonArray = json_decode($jsondata, true);
拥有此数组后,您可以遍历它以查找所需的值:
foreach($jsonArray["Results"] as $user) {
if($user['username'] == 'google') {
echo "Password = " . $user['password'];
}
}
这应该可以处理你的情况。请注意,您的JSON缺少“{”在“结果”元素之前,您可以在运行json_decode之前使用here to validate您的JSON代码。
答案 1 :(得分:2)
从php手册:
<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>
然后你可以使用测试用例(if / else)或switch case
在对象($ obj)上做一个循环