Javascript 将具有方形背景名称的JSON对象拆分为子对象
我们使用Javascript 将具有方形背景名称的JSON对象拆分为子对象,javascript,json,forms,Javascript,Json,Forms,我们使用serializeObject序列化表单,然后将其作为JSON编码字符串存储到本地存储器中。当我们从LocalStorage中解码此内容时,我们有名称为flight[inbound][0][iso]和flight[outbound][1][date]等的键。这使得以后(在JavaScript中)很难正确循环,因为我们现在需要用存储的数据重新填充表单 有没有办法将这些密钥名称进一步解码为子对象?例如: flight[outbound][0][datetime] = "Something";
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对象,那么您应该使用@James,所以它是一个jQuery插件?无论如何,你能创建一个JSFIDLE来重现你的问题吗?另请看flight[outbound]
直接等同于flight.outbound
或flight={outbound:{…}}
你知道这是内置到JavaScript中的,不是吗?你根本不需要插件。默认的polyfill Json序列化程序也是。这是一个建立在JSON2之上的版本,它是由发明JSON的人编写的。