使用php从json中的嵌套数组获取数据
我的json来自url提要。下面是一个示例。我没有正确地执行foreach循环是问题所在使用php从json中的嵌套数组获取数据,php,json,loops,Php,Json,Loops,我的json来自url提要。下面是一个示例。我没有正确地执行foreach循环是问题所在 { "useLive": true, "models": [ { "snapshotUrl": "https://img-eu.whatevercdn.com/eu7/previews/1537971705/5293074", "widgetPreviewUrl": "https://img-eu.whatevercdn.com
{
"useLive": true,
"models": [
{
"snapshotUrl": "https://img-eu.whatevercdn.com/eu7/previews/1537971705/5293074",
"widgetPreviewUrl": "https://img-eu.whatevercdn.com/eu7/previews/1537971705/5293074",
"id": 5293074,
"country": "",
"gender": "female",
"isNew": false,
"previewUrl": "https://st.whatevercdn.com/cdn/previews/b/a/a/baa515a42e75d80b0dc1e7a75bf4ea0f-full",
"previewUrlThumbBig": "https://st.whatevercdn.com/cdn/previews/b/a/a/baa515a42e75d80b0dc1e7a75bf4ea0f-thumb-big",
"previewUrlThumbSmall": "https://st.whatevercdn.com/cdn/previews/b/a/a/baa515a42e75d80b0dc1e7a75bf4ea0f-thumb-small",
"broadcastGender": "female",
"snapshotServer": "eu7",
"tags": ["autoTagPopular","keyword","keyword2"],
"topBestPlace": 0,
"username": "model1",
"languages": ["en"],
"stripScore": 998.5,
"token": "93021860dbebd5ba27e604f6b4b93754"
},
{
"snapshotUrl": "https://img-eu.whatevercdn.com/eu8/previews/1537971700/6492104",
"widgetPreviewUrl": "https://img-eu.whatevercdn.com/eu8/previews/1537971700/6492104",
"id": 6492104,
"country": "",
"gender": "female",
"isNew": false,
"previewUrl": "https://st.whatevercdn.com/cdn/previews/2/b/3/2b366955f5a66d73ee038d43bf77c99b-full",
"previewUrlThumbBig": "https://st.whatevercdn.com/cdn/previews/2/b/3/2b366955f5a66d73ee038d43bf77c99b-thumb-big",
"previewUrlThumbSmall": "https://st.whatevercdn.com/cdn/previews/2/b/3/2b366955f5a66d73ee038d43bf77c99b-thumb-small",
"broadcastGender": "female",
"snapshotServer": "eu8",
"tags": ["autoTagPopular","keyword","keyword2"],
"topBestPlace": 0,
"username": "model2",
"languages": [],
"stripScore": 997.25,
"token": "2c6ee95270f6faf76cd33321732136e3"
}
],
"ttl": 15,
"tagType": "F+T",
"tagName": "Featured",
"defaultTags": [
{
"name": "whatever1",
"url": "/tags/whatever1"
},
{
"name": "whatever2",
"url": "/tags/whatever2"
},
{
"name": "whatever3",
"url": "/tags/whatever3"
}
],
"serverTime": "2018-09-26T14:23:00Z"
}
这是我到目前为止的php代码。我试过很多不同的方法。我通常使用xml提要,这似乎很容易为我需要的内容进行设置。我不确定我错过了什么
$url='1!'https://whatever.com/api/external/v4/widget?userId=whatever&tag=featured'; // JSON文件的路径
$data=file_get_contents($url);//将文件内容放入变量中
$performers=json_decode($data,true);//解码JSON提要
foreach($performers作为$performer){
$info=$performer[0][“用户名”];
echo$info;
}
我只得到第一个用户名,然后是错误消息
警告:在/whatever中非法的字符串偏移量“username”
有人能帮上忙吗?您应该在foreach中使用$performers['models']数组,然后获取用户名。它可以正常工作。请尝试以下代码
$performers = json_decode($data, true);
if(isset($performers['models'])){
foreach ($performers['models'] as $performer) {
$info = (isset($performer["username"])) ? $performer["username"] : '';
echo $info;
echo "<br>";
}
}
如果用户名存在且不为空,还应检查用户名
model1
model2