2014-04-14 41 views

回答

0

JSON不支持對象引用,但JavaScript對象可以。你甚至可以存儲功能,因爲他們是一流的公民。

http://en.wikipedia.org/wiki/JSON#Object_references

var anna = {name: "Anna"}; 
var bob = {name: "Bob", knows: [anna]}; 
var charlie = {name: "Charlie", knows: [anna, bob]} 
anna.knows = [charlie, bob]; 

// 'Bob' 
alert(charlie.knows[0].knows[1].name) 

// ------------------------------------------------- 

var call = function(destination) { 
    alert(this.name + " calls " + destination.name); 
} 
bob.call = call; 

// 'Bob calls Charlie' 
bob.call(charlie); 

但要注意無限循環!
(鮑勃知道安娜,安娜知道鮑勃,鮑勃知道安娜,...)

在JSON中,關係只能用值(這是理想的記錄的唯一ID)表示。你基本上覆制了這個名字,並且需要用這個名字查找這個條目來找到它所指的。

var ob_from_json = JSON.parse(' 
    { 
     "bob": {"name": "Bob", "knows": ["anna"]}, 
     "anna: {"name": "Anna", "knows": ["bob"]} 
    } 
'); 

// 'Anna' 
ob_from_json[ob_from_json["bob"].knows[0]].name 
+0

如果我想將用戶和他們的朋友分開爲2個獨立的表格,該怎麼辦?我知道如何訪問json的數據。 – noob

+0

您似乎正在使用關係數據庫系統(MySQL)。關係數據庫實際上在存儲關係方面不好。要創建一個n:m關係數據庫,您需要一個存儲ID和兩個外鍵的附加表格 - 用戶標識。如果安娜知道鮑勃和查理,則在該表格中添加兩條記錄(1,「anna」,「bob」),(2,「anna」,「charlie」)。見例如http://stackoverflow.com/questions/260441/how-to-create-relationships-in-mysql更多。 – CoDEmanX

+0

是我知道的。我想問一下如何開發應用程序,尤其是單頁應用程序。我看到很多人員準備他們的json數據並創建它的前端。我不知道他們的數據庫邏輯是在他們的json中完成的,還是他們後來設計了關係? – noob