php获取特定json数组元素标记

php获取特定json数组元素标记,php,arrays,json,postgresql,laravel-5,Php,Arrays,Json,Postgresql,Laravel 5,首先,如果这是一个重复的问题,我很抱歉,但我找不到任何可以解决我问题的方法 我从DB(Postgres)中获取数据,并将其解析为Json数组。 数据如下所示 [{"login":"root@localhost","first_name":"Admin","last_name":"Name","title":null},{"login":"another@localhost","first_name":"More","last_name":"Data","title":"X"}] 我获取此数据的

首先,如果这是一个重复的问题,我很抱歉,但我找不到任何可以解决我问题的方法

我从DB(Postgres)中获取数据,并将其解析为Json数组。 数据如下所示

[{"login":"root@localhost","first_name":"Admin","last_name":"Name","title":null},{"login":"another@localhost","first_name":"More","last_name":"Data","title":"X"}]
我获取此数据的代码如下所示:

foreach ($jsonData as $us) {
    $user = new App\User;
    $user->name = $us->login; //same thing for the rest of data
我得到的错误是,我无法使用
->
从JSON调用数据,但是var_dump'ing$jsonData声明它是一个包含所有正确元素的数组


PS:忘记添加,但我尝试了
var_dump($jsonData['login'][0])
仅获取第一次登录(应为“root@localhost)但它会显示“未定义索引:登录”

,因为JSON不是存储在对象中,而是存储在数组中:

foreach ($jsonData as $us) {
    $user = new App\User;
    $user->name = $us['login']; //same thing for the rest of data
}

当您执行
var_dump($jsonData['login'][0])时,索引是向后的。如果你做了
var_dump($jsonData[0]['login'])它应该可以工作可能是不相关的,但是我认为您的foreach循环缺少一个结束
}
?也就是说
->
不工作。PHP有一个
json\u decode()
方法,该方法允许将json字符串解析为数组或对象(基于函数中的布尔参数)。我假设您的数据库驱动器在查询数据后自动将数据解析为数组。我猜您看到了一些示例,其中JSON数据是一个对象,因此给您带来了一些困惑。可能是错的,只是想把它扔出去。@CJWurtz事实上就是这样。我没有完全意识到json可以从字符串解析为对象或数组。(从未想过会有巨大的差异)。但是现在我把我以前对json的使用和后来对它和Laravel的体验放在一起,现在这实际上更有意义了。非常感谢。@lozadaOmr缺少的括号只是文章的一个复制错误。代码本身是正常的。它现在起作用了。我上次试这个的时候一定是无意中打错了什么,因为现在我按照你的建议做了,效果很好。也许是因为我用了括号而不是冒号之类的。不管怎样,非常感谢你的帮助!