dongzhi2887 2014-10-15 04:57
浏览 4
已采纳

使用php拉出json数据的“列”

I'm trying to pull specific data from this json:

[
    {
        "@context": "http://vocab.tokyometroapp.jp/context_odpt_Railway.jsonld",
        "@id": "urn:ucode:_00001C000000000000010000030C46B1",
        "@type": "odpt:Railway",
        "owl:sameAs": "odpt.Railway:TokyoMetro.Yurakucho",
        "dc:title": "有楽町",
        "odpt:stationOrder": [
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Wakoshi",
                "odpt:index": 0
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.ChikatetsuNarimasu",
                "odpt:index": 1
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.ChikatetsuAkatsuka",
                "odpt:index": 2
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Heiwadai",
                "odpt:index": 3
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Hikawadai",
                "odpt:index": 4
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.KotakeMukaihara",
                "odpt:index": 5
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Senkawa",
                "odpt:index": 6
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Kanamecho",
                "odpt:index": 7
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Ikebukuro",
                "odpt:index": 8
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.HigashiIkebukuro",
                "odpt:index": 9
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Gokokuji",
                "odpt:index": 10
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Edogawabashi",
                "odpt:index": 11
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Iidabashi",
                "odpt:index": 12
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Ichigaya",
                "odpt:index": 13
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Kojimachi",
                "odpt:index": 14
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Nagatacho",
                "odpt:index": 15
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Sakuradamon",
                "odpt:index": 16
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Yurakucho",
                "odpt:index": 17
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.GinzaItchome",
                "odpt:index": 18
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Shintomicho",
                "odpt:index": 19
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Tsukishima",
                "odpt:index": 20
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Toyosu",
                "odpt:index": 21
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.Tatsumi",
                "odpt:index": 22
            },
            {
                "odpt:station": "odpt.Station:TokyoMetro.Yurakucho.ShinKiba",
                "odpt:index": 23
            }
        ],
        "odpt:travelTime": 

~~~~~~~~~~~~~~~~~~~~~snip~~~~~~~~~~~~~~~~~~

what I'm trying to get is the station names, like TokyoMetro.Yurakucho.ShinKiba.

I've tried:

$json = file_get_contents($url.$info.$token);
$data = json_decode($json);
$stations = array($data->opdt.station);
var_dump($stations);

but I'm not getting anything back:

array(1) { [0]=> string(7) "station" }

is there a way to grab this particular 'column' of data? I'm more used to database queries.

Thanks so much!

  • 写回答

1条回答 默认 最新

  • doujinyi1267 2014-10-15 05:05
    关注

    Since there are multiple stations, you have to iterate through the array and put them in an array of station names.

    $json = file_get_contents($url.$info.$token);
    $data = json_decode($json, true);
    $stations = array();
    foreach ($data[0]['odpt:stationOrder'] as $station) {
        $name = $station['odpt:station'];
        $parts = explode(':', $name);
        $stations[] = $parts[1]; // Only care about the part after `odpt.Station:`
    }
    
    var_dump($stations);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳