1

我使用以下代码将数据插入 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

4 回答 4

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

已经是一个数组,它是对象的一部分。如果您希望它作为单独的变量,只需像这样创建它:

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

并将其添加到您的对象

var yourObject = {categories: data};

你甚至可以做这样的事情:

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

但请使用括号表示法

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

于 2012-12-10T10:04:46.973 回答
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'];
于 2012-12-10T10:05:31.093 回答
0

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

像这样分配一个变量:

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

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

完全一样:

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

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

于 2012-12-10T10:02:25.163 回答
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]);
}
于 2012-12-10T10:04:44.197 回答