问一下这个JS数据如何解码,数据地址:http://list.taobao.com/itemlist/default.htm?_input_charset=utf-8&json=on&cat=0&style=grid&pcat=food2011&q=ps&rr=1&spm=a2106.m5221.1000187.1&commend=all&pSize=95&_ksTS=1382516137021_144&callback=jsonp145
先声明,用php的json_decode是不行的哦

解决方案 »

  1.   

    很明显,去掉jsonp( 和后面 )用json_decode就可以了
      

  2.   


    编码会导致不行的。我以前遇到这种的做法是用JS提交给PHP。
      

  3.   

    我现在要在PHP中解码,还原成数组,如何做?
      

  4.   

    你试试这个
     $str ='{ "status": { "code": "200" , "url": "" }, 弄成类似于这样,把括号还有前面那几个字母去掉$str ='json数据';
     $web=json_decode($str);
    $arr=json_to_array($web);
    print_r($arr);function json_to_array($web){
    $arr=array();
    foreach($web as $k=>$w){
    if(is_object($w)) $arr[$k]=json_to_array($w);  //判断类型是不是object
       else $arr[$k]=$w;
    }
        return $arr;
    }
      

  5.   

    这是jsonp,给你javascript调用的 ,用jquery的jsonp方式请求,自己百度吧,或者自己写一个
    原理就是url里面callback参数是你预先要定义的函数名
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    </head>
    <body>
      <script type='text/javascript'>
        function jsonp145(data){
          alert(data.status.code);//200
        }
      </script>
      <script src='http://list.taobao.com/itemlist/default.htm?_input_charset=utf-8&json=on&cat=0&style=grid&pcat=food2011&q=ps&rr=1&spm=a2106.m5221.1000187.1&commend=all&pSize=95&_ksTS=1382516137021_144&callback=jsonp145'></script>
    </body>
    </html>你如果要php请求这个链接,就把callback参数去掉
      

  6.   

    $url = 'http://list.taobao.com/itemlist/default.htm?_input_charset=utf-8&json=on&cat=0&style=grid&pcat=food2011&q=ps&rr=1&spm=a2106.m5221.1000187.1&commend=all&pSize=95&_ksTS=1382516137021_144&callback=jsonp145';
    $s = file_get_contents($url);
    preg_match('/{.+}/s', $s, $r); //他返回的是js函数,所以需要脱括号
    $o = json_decode(iconv('gbk', 'utf-8', $r[0]), true);//他的数据是gbk的,但json_decode只能处理utf-8的函数
    print_r($o);
    Array
    (
        [status] => Array
            (
                [code] => 200
                [url] => 
            )    [crumb] => Array
            (
                [etInfo] => Array
                    (
                        [displayName] => 所有市场
                        [etHref] => http://list.taobao.com/cat-0.htm
                    )            [catPathList] => Array
                    (
                    )        )    [keyword] => Array
            (
                [key] => q
                [value] => ps
            )    [sort2List] => 
        [promotion] => Array
    .....
      

  7.   

    jsonp145(你要的数据内容)括号内就是啊