Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将具有方形背景名称的JSON对象拆分为子对象_Javascript_Json_Forms - Fatal编程技术网

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的人编写的。