我一直在使用 Google Finance API 成功收集一些股票信息。问题是在调用之后http://www.google.com/finance/info?infotype=infoquoteall&q=[$tickerSymbol]
,Google 返回的 JSON 有//
添加在它之前,因此该字符串无法使用 PHP 进行编码json_encode()
. The JSONLint JSON 验证器 http://www.jsonlint.com/确认//
s 无效。明显的解决方法是去掉 JSON 开头的斜杠。尽管如此,我还是想知道为什么 Google 在返回的 JSON 中添加斜杠。额外的斜杠背后有什么目的吗?这是 PHP 的一个怪癖吗json_encode()
当其他语言会简单地忽略额外的字符时?我做错了什么吗?
这是请求结果的示例http://www.google.com/finance/info?infotype=infoquoteall&q=AAPL
与前导斜杠。
// [ {
"id": "22144"
,"t" : "AAPL"
,"e" : "NASDAQ"
,"l" : "340.65"
,"l_cur" : "340.65"
,"ltt":"4:00PM EST"
,"lt" : "Jan 18, 4:00PM EST"
,"c" : "-7.83"
,"cp" : "-2.25"
,"ccol" : "chr"
,"el": "345.20"
,"el_cur": "345.20"
,"elt" : "Jan 18, 5:45PM EST"
,"ec" : "+4.55"
,"ecp" : "1.34"
,"eccol" : "chg"
,"div" : ""
,"yld" : ""
,"eo" : ""
,"delay": ""
,"op" : "327.05"
,"hi" : "344.76"
,"lo" : "326.00"
,"vo" : "66.34M"
,"avvo" : "11.28M"
,"hi52" : "348.48"
,"lo52" : "190.25"
,"mc" : "313.75B"
,"pe" : "22.49"
,"fwpe" : ""
,"beta" : "1.38"
,"eps" : "15.15"
,"name" : "Apple Inc."
,"type" : "Company"
}
]