我如何提取我的JSON响应的这一部分

时间:2017-02-20 06:22:16

标签: php json

我可以从JSON响应中提取用户ID,我从电报bot API获得响应,但我无法提取file_id。 这是我的代码:

 <?php
$response='{"ok":true,"result":[{"update_id":514191839,"message":{"message_id":898,"from":{"id":100000000,"first_name":"Nnn","username":"myid"},"chat":{"id":101150186,"first_name":"Nnn","username":"myid","type":"private"},"date":1487570256,"photo":[{"file_id":"AgADBAAD4KcxG9qfWFEqGZHRzv1IReOGnhkABOym5qINB41gwLIBAAEC","file_size":480,"width":90,"height":44},{"file_id":"AgADBAAD4KcxG9qfWFEqGZHRzv1IReOGnhkABCkXQqPZCWHswbIBAAEC","file_size":2694,"width":273,"height":132}]}}]}';
$arrayUpdate= json_decode($response, true);
foreach ($arrayUpdate['result'] as $key) {

                echo "user id is:".$key['message']['from']['id']."<br />";
                echo "photo file id is:".$key['photo']['file_id'];

}
?>

3 个答案:

答案 0 :(得分:2)

字段photo是一个元素数组。因此,例如,如果要提取第一个,则应使用:

echo "photo file id is:".$key['message']['photo'][0]['file_id'];

答案 1 :(得分:1)

foreach ($arrayUpdate['result'] as $key) {

    echo "user id is:" . $key['message']['from']['id'] . "<br />";
    foreach ($key['message']['photo'] as $photo) {
        echo "photo file id is:" . $photo['file_id'] . "<br />";
    }
}

答案 2 :(得分:1)

试试这个:

listLoop(items:IMenuModel[]):JSX.Element[] {
    var menuJsx:JSX.Element[] = items.map((item)=>{
        return (<li key={item.Id} className="dropdown">
        <a href="#" className="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> {item.itemName}<span className="caret" /></a>
            {items.childItems && items.childItems.length &&
                <ul className="dropdown-menu" role="menu">
                {this.listLoop(items.childItems)}
                </ul>
            }
        </li>);
    })
    return menuJsx;
}