从JSON PHP [Laravel]搜索对象



我这里有这样的 json 数据

代码

此 JSON 结果来自

$path = public_path() . "/users/project/$endpoint/$id_resource.json";
$file = File::get($path);
return $file

如果我想用网址搜索ID : 1 : localhost/show/json?id=1 结果是

[
  {
    "id": 1,
    "Name": {
      "FirstName": "Wilmer",
      "LastName": "Crona",
      "FullName": "Mr. Cameron Prosacco"
    },
    "Address": {
      "Address1": "84154 Vickie Burg Apt. 994",
      "Address2": "Suite 339",
      "ZipCode": "89080-0376"
    },
    "Phone": "316-269-7694 x1364"
  }
]

我该怎么办?

尝试return collect($temp)->where('id', $request->get('id'))->first(); 其中$temp是您的 JSON 数据。

$data='[
  {
    "id": 1,
    "Name": {
      "FirstName": "Wilmer",
      "LastName": "Crona",
      "FullName": "Mr. Cameron Prosacco"
    },
    "Address": {
      "Address1": "84154 Vickie Burg Apt. 994",
      "Address2": "Suite 339",
      "ZipCode": "89080-0376"
    },
    "Phone": "316-269-7694 x1364"
  }
]';

$data=json_decode($data,true);

foreach($data as $row){
    if($row['id']==$_GET['id']){
        echo '<pre>';
        print_r($row);
        echo '</pre>';
    }
}

此代码会将 json 转换为数组。由于数组是多维的,因此您需要使用 foreach 来访问嵌套数组。之后,一个简单的if将完成工作。

http://localhost/scripts/test.php?id=2

这是我正在使用的网址,这是输出:

Array
(
    [id] => 2
    [Name] => Array
        (
            [FirstName] => Mercedes
            [LastName] => Kshlerin
            [FullName] => Dr. Kellie Bashirian
        )
    [Address] => Array
        (
            [Address1] => 12638 Cali Spurs
            [Address2] => Suite 353
            [ZipCode] => 76622
        )
    [Phone] => 319-329-3169 x8848
)

最新更新