如何推入json数组?

时间:2018-01-21 16:41:09

标签: javascript html json

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"
    }
}

但结果是没有父HISTORY如下所示。如何创建儿童历史记录以及如上所示的儿童推送?

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

4 个答案:

答案 0 :(得分:1)

Easy ES6示例。

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

旧的浏览器支持。

{{1}}

答案 1 :(得分:1)

将历史记录作为数组对象的元素(并赋予其正确的名称......)。然后历史可以成为数组的根元素。在其中你可以使用推送功能:

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

答案 2 :(得分:0)

将数组[“History”]的值声明为数组并将值推入该值:

let words = ['hello', 'world']

答案 3 :(得分:0)

没有像“json array”“json object”这样的东西。 JSON始终是文字。它是数据结构的文本表示,可以是数组或对象。它对数组和对象使用JavaScript表示法。

为了得到这个JSON:

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

您需要构建一个PHP objectarray。 PHP arraysbare objects更通用,我建议您使用它们。

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

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

你的阵列是这样的:

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

当传递给json_encode()时,它会产生一个等同于你期望的JSON。

有许多方法可以构建输入数组。详细了解accessing and modifying array elements using the square brackets syntax