2012-07-30 25 views
0

使用http://objectmix.com/javascript/389546-reading-json-object-jquery.html作爲起點,我一直在閱讀關於JSON的大量內容。不幸的是,我是一個初學者,無法理解創建JSON對象的基礎知識。初學者創建和閱讀JSON對象

我創建了一個叫做getContact.php

<?php 
"Contact": { 
    "ID" : "1", 
    "Name" : "Brett Samuel" 
} 
?> 

一個PHP頁面,並用下面的代碼的JavaScript文件:

$.getJSON('getContacts.php', function(data) { 
    var obj = (new Function("return " + data))(); 
    alert(data.Contact.Name) 
}); 

本頁面http://msdn.microsoft.com/en-us/library/bb299886.aspx表明我的基本方法是正確的。誰能告訴我爲什麼這不起作用?絕對沒有任何反應。

在此先感謝。

回答

1

JSON是不是一種編程語言,它肯定不能執行,因爲PHP。這只是一個文件格式。如果你想要你的網絡服務器要提供靜態JSON文件,只需將其放入文件系統文件名 .json,不帶任何<?php標記。 (當然,和HTML一樣,你也可以將其設爲.php文件,並且只是沒有任何PHP,除了設置Content-Type的東西外,因爲文件後綴不會自動執行,但這太浪費了。)

如果要動態地產生一些JSON,使用PHP,那麼你必須編寫PHP代碼打印出來,如:

<?= json_encode(array( 
     'Contact' => array('ID' => 1, 'Name' => 'Brett Samuel') 
    )); ?> 

另外,還要注意一個JSON文件必須是一個完整的對象;你的整個事物需要另外一組花括號(如上面代碼片段的輸出)。

+0

謝謝@Mark你的答案總是非常有幫助。 – Brett 2012-07-30 12:49:51

4

您的PHP文件包含JSON,這是無效的PHP,因此會出錯。

如果您使用PHP,最簡單的構建JSON的方法是首先將數據準備爲數組(根據需要進行關聯或索引),然後通過json_encode()進行簡單轉換。 (您也可以解碼JSON,與相應的json_decode()

[編輯 - 迴應置評,只是看看PHP文檔的json_encode() - 這是非常自我解釋你把一個數組,它傳遞給json_encode(),你會得到一個JSON字符串。

$arr = array('one', 'two', 'three'); 
echo json_encode($arr); //JSON string 
+0

您能否提供一個示例(使用上面的預期輸出)? – Brett 2012-07-30 12:14:01

+0

請參閱編輯....... – Utkanos 2012-07-30 12:17:13

+0

謝謝,但您可以用兩個聯繫人做出示例嗎?我發現很難跟蹤實際發生的事情。 – Brett 2012-07-30 12:38:39