2016-05-19 129 views
0

我是JSON的新成员,面临创建非常简单数组的问题。如何创建JSON数组

frm1 = {"fname":"John","lname":"Doe","location":"CA"}; 
frm2 = {"fname":"Jenny","lname":"Doe","location":"CA"}; 

我想创建像下方的JSON::

我有钥匙,从HTML表格接收值对

{ 
    "employee":[ 
    {"fname":"John","lname":"Doe","location":"CA"}, 
    {"fname":"Jenny","lname":"Doe","location":"CA"} 
]} 

试图把第一形式数据(frm1)只有通过下面的代码是行不通的。

var form1 = {"employee":[]}; 

form1.employee = frm1; 

console.log(JSON.stringify(form1)); // prints form1 :{"employee" : ["fname","lname","location"]} 

只打印键。请建议。

+0

只是为了澄清:你正在使用的是纯Javascript对象和数组,而不是JSON。 JSON是用于交换数据对象的*文本*格式。 –

+0

我必须解析它吗? – chows2603

+1

那么,这取决于你是否正在处理对象(如示例中)或字符串(可能包含JSON)。 'console.log(typeof frm1)'将会说'object'或'string'。例如。 'console.log(typeof'{“fname”:“john”}')'会说这是一个需要解析的字符串,而'console.log(typeof {“fname”:“john”})'会说这是一个很好的对象。 –

回答

2

只是应用这些

var form1 = { employee: [frm1, frm2] }; 
2

要么创建具有数组元素的对象

var frm1 = { 
 
    "fname": "John", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }, 
 
    frm2 = { 
 
    "fname": "Jenny", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }; 
 

 
var form1 = { 
 
    "employee": [frm1, frm2] 
 
}; 
 
console.log(JSON.stringify(form1));

或推元件稍后使用 push()

var frm1 = { 
 
    "fname": "John", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }, 
 
    frm2 = { 
 
    "fname": "Jenny", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }; 
 
var form1 = { 
 
    "employee": [] 
 
}; 
 
form1.employee.push(frm1,frm2); 
 

 
console.log(JSON.stringify(form1));

+0

'push'接受多个参数:'form1.employee.push(frm1,frm2)' – Oriol

0

var frm1 = {"fname":"John","lname":"Doe","location":"CA"}; 
 
    var frm2 = {"fname":"John","lname":"Doe","location":"CA"}; 
 
    var form1 = {"employee":[" ",""]}; 
 
    
 

 
    form1["employee"][0] = frm1; 
 
    form1["employee"][1] = frm2; 
 
    
 
    
 
    console.log(form1["employee"][0]); 
 
    console.log(form1); 
 
    console.log(JSON.stringify(form1));

由于密钥值是一个数组可以使用按键或使用其数组索引

对不起,我误会了你想要的问题一个具有多个值的阵列,用于员工的单个对象