zoukankan      html  css  js  c++  java
  • perl 公交车查询

    <pre name="code" class="cpp">decode_json 必须是unicode形式的字符,Dump不支持显示unicode形式的中文 只能 x{xxxx}
    use URI::Escape;
    use Encode;
    use JSON qw/encode_json decode_json/;
    my $str="杭州";
    my $str=uri_escape("$str"); 
    print "$str is $str
    ";
    use LWP::UserAgent;
    my  $ua = LWP::UserAgent->new;
    my  @header = (
        'accept'=> "application/json",
        'content-type'=> "application/json",
        'apikey'=> "3074a7f9926a4bbb484aa8bb366e5b87",
        'User-Agent' => "Mozilla/8.0"
        );
    my $url = "http://apis.baidu.com/xiaota/bus_lines/buses_lines?city=$str&bus=$ARGV[0]&direction=$ARGV[1]";
    $request = HTTP::Request->new(GET=>"$url");
    $request->header(@header);
    $response = $ua->request($request); 
    $content= $response->decoded_content;
    $content =~ s/\u([0-9a-fA-F]{4})/pack("U",,hex($1))/eg; 
    $content  = encode_utf8($content);
    my $json_out = $content ; 
    print $json_out;
    ##解码json数据
    my $json_out = decode_json($content);
    print "111111111111
    ";
    use Data::Dumper;
    
    #my $json_out= Dumper($json_out->{data}->{stations}); 
    #print $json_out;
    #print "
    ";
    foreach (@{($json_out->{data}->{stations})}){print encode_utf8($_->{stateName})."
    ";};
    [root@dr-mysql01 ~]# perl x2.pl 307 1
    $str is %E6%9D%AD%E5%B7%9E
    {"code":1000,"msg":"success!","data":{"buses":[{"busId":0,"station":10,"state":0,"distance":246,"reporTime":1}],"stations":[{"station":1,"stateName":"黄龙体育中心"},{"station":2,"stateName":"教工路花园亭"},{"station":3,"stateName":"花园新村"},{"station":4,"stateName":"浙江工商大学"},{"station":5,"stateName":"保亭巷"},{"station":6,"stateName":"教工路塘河路口"},{"station":7,"stateName":"大关桥西"},{"station":8,"stateName":"长乐路"},{"station":9,"stateName":"二纺机总厂"},{"station":10,"stateName":"沈塘湾"},{"station":11,"stateName":"善贤社区"},{"station":12,"stateName":"善贤坝"},{"station":13,"stateName":"皋亭坝"},{"station":14,"stateName":"李王桥"},{"station":15,"stateName":"袁家村"},{"station":16,"stateName":"张家园"},{"station":17,"stateName":"杭玻"},{"station":18,"stateName":"焦化分厂"},{"station":19,"stateName":"沈家桥"},{"station":20,"stateName":"毛竹山"},{"station":21,"stateName":"薄板分厂"},{"station":22,"stateName":"刘文村"}]}}111111111111
    黄龙体育中心
    教工路花园亭
    花园新村
    浙江工商大学
    保亭巷
    教工路塘河路口
    大关桥西
    长乐路
    二纺机总厂
    沈塘湾
    善贤社区
    善贤坝
    皋亭坝
    李王桥
    袁家村
    张家园
    杭玻
    焦化分厂
    沈家桥
    毛竹山
    薄板分厂
    刘文村
    


    
                                        
    
  • 相关阅读:
    Ext.create() 时的自适应高度和宽度
    C++ builder快捷键大全
    删除右键菜单中的选项
    函数中指针和引用的形参和实参
    一道关于继承和多态的题目
    关于静态对象构造
    关于多态代码和运行结果
    如何使用C++ Builder 6.0连接Access数据库
    BCB中的RTTI机制
    scanf()返回值(转)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350940.html
Copyright © 2011-2022 走看看