我認爲這可能被歸類爲基本的,但我很好奇。爲什麼你必須解析從ajax調用返回的json編碼數據,但是如果它在主加載文檔中被php回顯則不行?回顯json_encode和在AJAX中返回它之間的區別
編輯:基本上的問題是,如果我在這兩種情況下的特性id
稱爲data
的對象,所以我可以輸入
data.id
,並有返回值時,JSON對象是否已在加載主文檔時回顯出來,但從ajax調用返回並且未解析時它會拋出錯誤?
我認爲這可能被歸類爲基本的,但我很好奇。爲什麼你必須解析從ajax調用返回的json編碼數據,但是如果它在主加載文檔中被php回顯則不行?回顯json_encode和在AJAX中返回它之間的區別
編輯:基本上的問題是,如果我在這兩種情況下的特性id
稱爲data
的對象,所以我可以輸入
data.id
,並有返回值時,JSON對象是否已在加載主文檔時回顯出來,但從ajax調用返回並且未解析時它會拋出錯誤?
通過迴盪,我假定你的意思是你做了這樣的事情:
<script>
var data = <? echo json_encode($data) ?>;
alert(data.id);
</script>
如果是這樣的話,瀏覽器會知道,因爲它包含由腳本標籤中迴應JSON是代碼。 JSON是JavaScript的一個子集,所以你在這裏真正做的是生成瀏覽器解釋的JavaScript代碼。
另一方面,阿賈克斯是不同的。當你用ajax加載某些東西時,它可能是text,xml,csv,html,svg或幾十種不同格式中的任何一種。 JSON只是像我列出的其他數據格式一樣,所以你必須告訴JavaScript引擎它是什麼。這就是爲什麼你必須解析它。它需要知道文本的格式,以便正確解釋它。
你不需要必須,而JSON編碼的字符串仍然需要從Javascript「解碼」。這只是能夠在返回的字符串中訪問數組元素/屬性的更快捷的方法。
我的意思是爲什麼我可以訪問數組元素/屬性與回聲JSON數據而不解碼它,因爲我會在AJAX? –
可能的答案。因爲PHP「回聲」從你的json生成html。可以被瀏覽器使用的Html。在你的JavaScript,你解析你的JSON將其轉換爲HTML ... – TCHdvlp
似乎邏輯,doh!但是,再次,爲什麼在數據類型爲html時不自動分析html? –
mhm ...你可以調用ajax,並獲得html格式的答案。在成功回調中,'$(「#element」)。html(data);'起作用。所以我想我們可以做'$(「#element」)。append(data);' – TCHdvlp