使用php在json中搜索

使用php在json中搜索,php,json,Php,Json,以下是json代码: "Results":[{"username":"test","password":"test"},{"username":"test","password":"test"},{"username":"google","password":"test"},{"username":"yahoo","password":"test"}]} 您可以看到它包含多个值。我想在这个代码中搜索 我想得到用户名的密码:谷歌 使用php有什么方法可以做到这一点吗?来自php手册: <?

以下是json代码:

"Results":[{"username":"test","password":"test"},{"username":"test","password":"test"},{"username":"google","password":"test"},{"username":"yahoo","password":"test"}]}
您可以看到它包含多个值。我想在这个代码中搜索

我想得到用户名的密码:谷歌

使用php有什么方法可以做到这一点吗?

来自php手册:

<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>


然后,您可以使用测试用例(if/else)或切换用例在对象($obj)上进行循环,json代码是一种数据表示。您可以将其视为字符串,并使用php的字符串解析函数获取所需内容,也可以将其加载到数组或对象中。我将重点介绍数组方法,因为它保持了JSON想要表示的结构。有一个函数将获取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在“Results”之前缺少一个“{”元素,您可以在运行JSON_decode之前查看您的JSON代码。

可能重复,但如何使用此JSON代码?@Jakub username和password只是一个测试变量:)使用if/else可能会慢于从100个结果中搜索:)任何替换?+1。但请注意,您将只能使用它遍历一个级别。要访问更深层次,您必须链接:$obj->{'level1'}->{'level2'}->{'level3'}开关case if比if/else快,更多信息如下:以及如何实现它