繁体   English   中英

如何推入json数组?

[英]How to push into json array?

var array = ["History"]
...
for (var i = 0; i<div.length; i++){
    var array2 = {
        "name": div[i].value
    };
}
array.push(array2);

我需要创建数组的根,如下所示

"History":{
    0:{
        name: "some text"
    },
    1:{
        name: "some text 2"
    }
}

但是结果是,没有父历史记录,如下所示。 如上图所示,我如何创建子历史记录并将其添加到子项中?

0: "History",
1: {
    name: "some text"
},
2: {
    name: "some text 2"
}

简单的ES6示例。

const tag = 'History';
const obj = {[tag]: {}};
const res = ['ex1', 'ex2', 'ex3'].reduce((acc, x, i) => {acc[tag][i] = x; return acc;}, obj);

console.log(res); // { "History": { 0: "ex1", 1: "ex2", 2: "ex3" } }

旧的浏览器支持。

var tag = 'History';
var obj = {History: {}};
var res = ['ex1', 'ex2', 'ex3'].reduce(function(acc, x, i){ acc[tag][i] = x; return acc; }, obj);

console.log(res); // Same output as above

将History设为数组对象的元素(并为其指定适当的名称...)。 然后历史记录可以是数组的根元素”,您可以使用push函数:

var array = {"History":[]};
...
array.History.push(array2);

将array [“ History”]的值声明为一个数组,并将值压入该数组:

    var array = ["History"]
    array["History"] = [];
    ...
    for (var i = 0; i<div.length; i++){
        array["History"].push( {
            "name": div[i].value
        });
    }

没有像“ json数组”“ json对象”之类的东西 JSON始终是文本。 它是数据结构的文本表示形式,可以是数组或对象。 它对数组和对象使用JavaScript表示法。

为了获得此JSON:

"History":{
    0:{
        name: "some text"
    },
    1:{
        name: "some text 2"
    }
}

您需要构建一个PHP 对象数组 PHP 数组裸对象更通用,我建议您使用它们。

键为数字,连续且从零开始的PHP数组被编码为JSON中的数组。 其他数组被编码为对象。

此数组必须只有一个键( "History" ),并且其关联的值必须是包含两个数组的数组(数字索引)。 这些数组中的每一个必须只有一个键: "name"

您的数组如下所示:

$input = array(
    "History" => array(
        array("name" => "some text"),
        array("name" => "some text 2"),
    ),
);

当传递给json_encode()它会生成与您期望的JSON等效的JSON。

建立输入数组的方法有无数种。 阅读更多有关使用方括号语法访问和修改数组元素的信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM