【发布时间】:2015-10-11 12:09:34
【问题描述】:
我在获取正确存储为 JSON 的信息数组时遇到问题。
我做了一个fiddle to illustrate the problem。输入一组标签并查看控制台以查看输出。
更多解释:
所以我有一个输入以逗号分隔的标签列表,然后我对其进行格式化。
function createTagArray() {
// given an input value of 'tag1, tag2, tag3'
// returns array = ['tag1', 'tag2', 'tag3']
}
我认为接下来我需要做的是: 遍历数组并为每个项目创建一个“标签”对象,该对象还包括标签的 id 和标签关联的联系人的 id。
每个对象都被推送到tags,一个可观察的数组。
function single_tag(id, contactId, tagLabel) {
var self = this;
self.id = id;
self.contactId = contactId;
self.tagLabel = tagLabel;
}
function createTags() {
var array = createTagArray();
for (var i = 0; i < array.length; i++) {
self.tags().push(new single_tag(uuid.generate(), self.contactId, array[i]));
}
}
然后,我将其转换为 JSON
self.contactInformation = function() {
return ko.toJS({
"id": self.contactId,
"firstname": self.firstname(),
"lastname": self.lastname(),
... other fields ...
"tags": self.tags(),
})
}
但是,当我检查调用此函数的控制台输出时,标签是数组的集合,而不是一个好的 json 对象。
如何正确格式化?
我试过this suggestion,标签json的结构是正确的,但它是用转义引号存储的,所以看起来不对。
感谢大家的帮助!
【问题讨论】:
-
仅供参考,您的示例已损坏。表单绑定中有错字。
sumbit => submit -
谢谢!这就解释了为什么它试图发布表单。
标签: javascript jquery arrays json knockout.js