从变量向json插入数据

时间:2012-12-10 10:00:23

标签: javascript json

我使用以下代码将数据插入json:

categories: [
                'Tokyo',
                'Jakarta',
                'New York',
                'Seoul',
                'Manila',
                'Mumbai',
                'Sao Paulo',
                'Mexico City',
                'Dehli',
                'Osaka',
                'Cairo',
                'Kolkata',
                'Los Angeles',
                'Shanghai',
                'Moscow',
                'Beijing',
                'Buenos Aires',
                'Guangzhou',
                'Shenzhen',
                'Istanbul'
            ],

它可以工作,但是,我想将这些数据放入一个数组或字符串变量中,如下所示:

var data = Array('Tokyo',
                'Jakarta',
                'New York',
                'Seoul',
                'Manila',
                'Mumbai',
                'Sao Paulo',
                'Mexico City',
                'Dehli',
                'Osaka',
                'Cairo',
                'Kolkata',
                'Los Angeles',
                'Shanghai',
                'Moscow',
                'Beijing',
                'Buenos Aires',
                'Guangzhou',
                'Shenzhen',
                'Istanbul');
categories: [data],

但是,它不起作用。你能帮助我吗 ? 感谢。

4 个答案:

答案 0 :(得分:1)

data: ['Tokyo', 'Jakarta',...] 

已经是一个数组,它是一个对象的一部分。如果你想把它作为单独的变量,就像这样创建它:

var data = ['Tokyo', 'Jakarta',...];

并将其添加到您的对象

var yourObject = {categories: data};
你甚至可以做这样的事情:

var yourObject = {categories: new Array('Tokyo', ...)};

但请使用括号表示法

提示:您正在创建一个“对象文字”而不是JSON-Object。 JSON只是对象文字的一个子集。阅读更多here

答案 1 :(得分:1)

应该是

var data = ['Tokyo','Jakarta','New York','Seoul','Manila','Mumbai','Sao Paulo','Mexico City','Dehli','Osaka','Cairo','Kolkata','Los Angeles','Shanghai','Moscow','Beijing','Buenos Aires','Guangzhou','Shenzhen','Istanbul'];

答案 2 :(得分:0)

答案是第一部分的工作正是你在第二部分所描述的。所以它已经有效了。

分配如下变量:

categories : ['firstElement', 'secondElement'];

使json-field类别包含Array对象。例如,您可以使用categories[0]来访问“firstElement”。

完全相同:

var categoties = new Array();
categories.push('firstElement');
categories.push('secondElement');

您的第二次尝试不起作用,因为您无法在构造函数new Array(...)中提供数组值。如果使用new Array()对其进行实例化,则可以使用.push('value')将元素添加到数组中。

答案 3 :(得分:0)

var categories = [];

var data = ['Tokyo',
            'Jakarta',
            'New York',
            'Seoul',
            'Manila',
            'Mumbai',
            'Sao Paulo',
            'Mexico City',
            'Dehli',
            'Osaka',
            'Cairo',
            'Kolkata',
            'Los Angeles',
            'Shanghai',
            'Moscow',
            'Beijing',
            'Buenos Aires',
            'Guangzhou',
            'Shenzhen',
            'Istanbul'];

for (var i = 0; i < data.length; i++) {
  categories.push(data[i]);
}