[英]Reading php-encoded JSON in Javascript
I have created a JSON object in php using json_encode and am attempting to display certain values of that object in javascipt through AJAX. 我收到來自 php 的響應沒有問題,但是當我嘗試使用 JSON 表示法訪問響應的任何值時,我得到了“未定義”。
代碼片段:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var response = xmlhttp.responseText;
alert(response);
alert(response.data);
}
Output:
{"data":[{"cheese":"pork"},{"cheese":"chicken"}]} // Yes, I'm hungry right now.
undefined
編輯:感謝大家的回復。 希望我能給大家一個復選標記,但我選擇了最有幫助的回復。
您必須解析 json。 這可以通過對eval
的簡單調用來完成,但這只有在您絕對信任返回服務器的情況下才能完成,因為他可以讓您的腳本執行所有內容。
var data = eval('('+response+')');
如果使用json2.js
,我建議的方式是一個小型 javascript 庫,它可以更快地為您處理解析。
var data = JSON.parse(response);
您需要解析 JSON:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var jdoc = JSON.parse(xmlhttp.responseText);
alert(jdoc.data[0].cheese);
}
在舊瀏覽器中包含json2.js 。
您必須將響應轉換為 js object。
最簡單的方法是使用 eval():
eval('var result = ' +response);
alert(result.data);
var response = xmlhttp.responseText
這不是 JSON object。 這是純文本。 使用var myObject = eval('(' + myJSONtext + ')');
例如獲取 JSON (eval 是邪惡的:)
看起來響應是純文本。 嘗試這個:
var response = xmlhttp.responseText;
var data = new Function("return "+xmlhttp.responseText)();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.