Heim  >  Artikel  >  Backend-Entwicklung  >  javascript - 非标准json格式解析的问题

javascript - 非标准json格式解析的问题

WBOY
WBOYOriginal
2016-07-06 13:52:592297Durchsuche

1.

javascript - 非标准json格式解析的问题

返回的是这个格式,PHP的json_decode();不能直接解析,难道要各种切割字符串成JSON格式,在用json_decode();解析?

javascript - 非标准json格式解析的问题

这是标准的json格式.

2.
javascript - 非标准json格式解析的问题
这个特别接近json格式了,但是还是无法解析.
各位有没有好的方法.

回复内容:

1.

javascript - 非标准json格式解析的问题

返回的是这个格式,PHP的json_decode();不能直接解析,难道要各种切割字符串成JSON格式,在用json_decode();解析?

javascript - 非标准json格式解析的问题

这是标准的json格式.

2.
javascript - 非标准json格式解析的问题
这个特别接近json格式了,但是还是无法解析.
各位有没有好的方法.

这里是 是不是 的问题
而不是 像不像 的问题

老老实实把提取出来吧。

<code class="php">$res = file_get_contents('https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15011923452');
    /*"__GetZoneResult_ = {
    mts:'1501192',
    province:'广东',
    catName:'中国移动',
    telString:'15011923452',
    areaVid:'30517',
    ispVid:'3236139',
    carrier:'广东移动'
}"*/
    $res = trim(explode('=',$res)[1]);
    $res = iconv('gbk','utf-8', $res);
    $res = str_replace("'",'"', $res);
    $res = preg_replace('/(\w+):/is', '"$1":', $res);
    print_r(json_decode($res,1));
    /*Array
(
    [mts] => 1501192
    [province] => 广东
    [catName] => 中国移动
    [telString] => 15011923452
    [areaVid] => 30517
    [ispVid] => 3236139
    [carrier] => 广东移动
)*/</code>

PHP的话必须要提取成json字符串才行。。

这是个js的属性对象吧...
如果不怕XSS注入的风险,可以直接扔到js里面。

全部取出来=>用正则去掉第一个{前的内容=>JSON.parse

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn