[英]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.