我在这里使用JSON:http://steamcommunity.com/id/mitch8910/inventory/json/730/2/
我正试图获得它的tags[{"name":""}]
部分。例如,我想要'容器',来自'“name”:“Container”'
这是我的代码:
$data = file_get_contents('http://steamcommunity.com/id/mitch8910/inventory/json/730/2/');
$json = json_decode($data);
foreach ($json->rgDescriptions as $mydata)
{
echo $mydata->tags[1];
}
tags[]
是一个数组,虽然我做了tags[1]
,但我并没有想要'1'元素,因为“name”的位置可能会在数组中针对不同元素而改变,I只是做了这个测试,但我收到了一个错误。我尝试了多种方法来处理多个错误,这就是我没有发布所有错误代码的原因。
答案 0 :(得分:1)
我更新了整个答案:
$json = json_decode($data, true);
if (isset($json['rgDescriptions']) && is_array($json['rgDescriptions'])){
foreach ($json['rgDescriptions'] as $array_no => $value) {
if (isset($json['rgDescriptions'][$array_no]['tags'])){
echo "{$array_no}::::";
foreach ($json['rgDescriptions'][$array_no]['tags'] as $k => $value) {
if (isset($json['rgDescriptions'][$array_no]['tags'][$k]['name'])){
echo "{$json['rgDescriptions'][$array_no]['tags'][$k]['name']},";
}
}
echo "<br />";
}
}
}
答案 1 :(得分:1)
最简单的方法是进行额外的循环以获取所有名称元素:
$data = file_get_contents('http://steamcommunity.com/id/mitch8910/inventory/json/730/2/');
$json = json_decode($data);
foreach ($json->rgDescriptions as $mydata)
{
foreach($mydata->tags as $tag) {
echo $tag->name;
}
}
或获取每个标签组的名字:
foreach ($json->rgDescriptions as $mydata)
{
echo $mydata->tags[0]->name;
}