2012-07-23 65 views
0

我正在構建一個問卷構建器,其中一些問題的答案可能導致後續問題。下一步是序列化這些數據並將其處理成SQL查詢。雖然我使用jQuery,我不認爲serializeArray()複雜到足以序列化就是我想要的數據,這將是這樣的:使用對象作爲鍵

Answer = { 
    'text': String, 
    'default': String, 
    'img_path': String 
} 

Question = { 
    'type': String, 
    'text': String, 
    'followups': { 
     Answer : [Question, Question, ...], 
     Answer : [Question], 
     Answer : [] 
    } 
} 

我遇到的問題是,當我嘗試使用Answer對象作爲'followups'映射中的鍵 - 當我使用JSON.stringify()時,不是將鍵串化,而是將其作爲[object Object]輸出。

編輯:

字符串化的關鍵是要保持數據的一種方法,但後來也有一些討厭的逃逸,如

"followups": { 
    "{\"text\":\"asdfasdfa\"}": [] 
} 

這將是很好的解決這個問題,但我打開任何建議,以更好的方式序列化這種形式。

+1

在JSON對象的關鍵只能是做出來的字符串。您可以嘗試添加另一個答案對象(使用ID或其他)並使用Answer id來構建後續動作 – yoavmatchulsky 2012-07-23 16:37:14

回答

1

你可能需要稍微修改您的數據結構,類似這樣的東西:

Question = { 
    'type': String, 
    'text': String, 
    'followups': [ 
     { 
      answer : Answer, 
      questions : [Question, Question, ...] 
     }, 
     { 
      answer : Answer, 
      questions : [Question] 
     }, 
     { 
      answer : Answer, 
      questions : [] 
     } 
    ] 
} 
+0

在這種情況下,Question.followups應該是一個數組,而不是對象 – yoavmatchulsky 2012-07-23 16:39:48

+0

@yoavmatchulsky您是正確的,先生。 – scottm 2012-07-23 16:40:24

+0

http://stackoverflow.com/questions/882727/is-a-way-that-use-var-to-create-json-object-in-key 我解釋說,能夠使用任何類型的變量作爲一個關鍵;但感謝您的幫助! – actaeon 2012-07-23 16:42:39

相關問題