【问题标题】:Search object from JSON PHP [Laravel] [closed]从 JSON PHP [Laravel] [关闭] 搜索对象
【发布时间】:2018-08-07 12:29:54
【问题描述】:

我有这样的 json 数据Code in here

这个json结果来自

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

如果我想用 url 搜索 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"
  }
]

我该怎么办?

【问题讨论】:

    标签: php json laravel api


    【解决方案1】:

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

    【讨论】:

    • 对不起。我忘记了,这个 json 数据是从公开的 json 文件中获取的
    【解决方案2】:
    $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
    )
    

    【讨论】:

    • 对不起。我忘了,这个 json 数据是从我的 laravel public 中的一个 json 文件中获取的
    • 我看到了你的照片,这也是我得到它的地方。
    • 最好在foreach 循环中使用returnbreak,因为即使找到正确的ID,它也会遍历整个数组。此外,您没有关闭 &lt;pre&gt; 元素。
    • 我修正了
       结束标签,你是对的。我认为它应该遍历整个数组,以防万一也有重复的值。问题没有具体说明,所以我只是假设我们要检查整个数组。
    • 谢谢@pr1nc3,我已经使用了你的方法和工作。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2018-03-10
    • 2020-06-18
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多