【发布时间】:2014-04-24 09:49:47
【问题描述】:
我们正在使用serializeObject 序列化表单,然后将其作为 JSON 编码字符串存储到本地存储中。当我们从 LocalStorage 中解码出来时,我们有名称为 flight[inbound][0][iso] 和 flight[outbound][1][date] 等的键。这使得以后(在 JavaScript 中)很难正确循环,因为我们现在需要用存储的表单重新填充数据。
有没有办法将这些键名进一步解码为子对象?例如:
flight[outbound][0][datetime] = "Something";
flight[outbound][0][from] = "Something";
flight[outbound][0][to] = "Something";
flight[outbound][0][carrier] = "Something";
flight[inbound][0][datetime] = "Something";
flight[inbound][0][from] = "Something";
flight[inbound][0][to] = "Something";
flight[inbound][0][carrier] = "Something";
应该变成:
flight = {
outbound: {
0: {
datetime: "Something",
from: "Something",
to: "Something",
carrier: "Something",
}
},
inbound: {
0: {
datetime: "Something else",
from: "Something else",
to: "Something else",
carrier: "Something else",
}
}
}
【问题讨论】:
-
serializeObject的代码是什么?这在序列化到正确对象的步骤中应该是错误的。 -
JSON 是什么样的?如果您将 JSON 转换为 JS 对象,您应该使用 JSON.Parse()
-
@James 所以这是一个 jQuery 插件?无论如何,您可以创建一个 jsfiddle 来重现您的问题吗?
-
另见Javascript expando objects
flight[outbound]直接等于flight.outbound或flight={outbound:{...}}
标签: javascript json forms