Discuss
/
JavaScript
/
YAHOO天气API解析错误原因分析
YAHOO天气API解析错误原因分析
Topic source不对不对,复制out[76] 两个单引号之间的部分,不包含两端的单引号.
原本用单引号的地方应该用新学的呻吟符下方的反引号代替.
这是呻吟符~~~~~~~~~~~~~
反引号在这里会被转义,写在下面:
`
var json = document.getElementsByTagName("pre")[0].childNodes[0].nodeValue;
我打开页面之后就拿到了。。。貌似没有那么复杂?
- 1
匿名sina网友V
结论:是我们的姿势错了.
YAHOO没有错.
yahoo作为一个老牌过气大厂,还不至于连个json都生成不好.
错的是我们获取json字符串的姿势.
我猜大家都是用浏览器直接打开了yahaoo天气api的url,然后将显示在页面上的内容拿回来用
JSON.parse
解析,发现各种报错的.原理如下:
1.yahoo生成json字符串的时候
\n
已经转化为了\\n
, 2.而我们用浏览器去查看这段字符串,浏览器把\\n
(渲|污)染成\n
给我们看. 3.我们不知有诈,直接将浏览器这个小婊子显示的\n
复制回了家 4.然后JSON.parse
的时候就炸了证明完毕.
这里有一份福利给大家.
Out[76]
就是我们想要的yahoo生成未被污染过的json字符串复制out[76] 两个单引号之间的部分 在浏览器控制台下输入
> JSON.parse(粘贴到括号里边);
按下enter
看结果.祝你成功.