使用Object作为键

时间:2012-07-23 16:31:21

标签: javascript jquery

我正在建立一个调查问卷构建器,其中一些问题的答案可以导致后续问题。下一步是序列化此数据并将其处理为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 个答案:

答案 0 :(得分:1)

您可能需要稍微修改数据结构,类似于:

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