我剛開始使用JSON,有時候我還是有點頭腦不清。爲什麼有時json輸出用圓括號包裝
當我檢索this link數據,有一對括號包裹JSON字符串的(或對象字面):
({"book":[{"book_ref":"1 S","book_name":"1 Samuel","book_nr":"9","chapter_nr":"3","chapter":{"16":{"verse_nr":"16","verse":"\u4ee5 \u5229 \u547c \u5524 \u6492 \u6bcd \u8033 \u8bf4 \uff1a \u6211 \u513f \u6492 \u6bcd \u8033 \u554a \uff01 \u6492 \u6bcd \u8033 \u56de \u7b54 \u8bf4 \uff1a \u6211 \u5728 \u8fd9 \u91cc \uff01\r\n"}}}],"direction":"LTR","type":"verse","version":"cus"});
在我以往的經驗,我從來沒有見過這樣的事情。 (例如,this link輸出具有沒有括號JSON字符串。)
出乎我的意料,看來我可以只使用它像往常一樣在jQuery的:
jQuery.ajax({
url:'http://getbible.net/json',
dataType: 'jsonp',
data: 'p=John1&v=kjv',
jsonp: 'getbible',
success:function(json){console.log(json)}
});
但是,當我設法得到它使用PHP的file_get_contents()
,然後json_decode()
,括號似乎是在阻礙,json_decode()
什麼也沒有返回。
那麼圓括號的目的是什麼?它與jsonp有關嗎?無論如何,以PHP方式使用這種JSON而無需編寫代碼來擺脫括號?
如果你問我,我會說這也是無效的JSON,但重點是,它工作!爲什麼? – shenkwen
可能是因爲'jQuery'嘗試接受它,即使無效,而PHP正確地拒絕它 –