[英]How do I build JSON dynamically in javascript?
var myJSON = {
"list1" : [ "1", "2" ],
"list2" : [ "a", "b" ],
"list3" : [ { "key1" : "value1" }, { "key2" : "value2" } ],
"not_a_list" : "11"
};
如何在 javascript 中动态构建这个 JSON 结构? 谷歌告诉我使用一些推送命令,但我只找到了特定的情况。 那么我写什么来输入数据到“listX”和“not_a_list”。 追加以及创建新列表。 整个过程开始于:
var myJSON = {};
首先,我认为你称之为错误的事情。 “JSON”代表“JavaScript Object Notation”——它只是一种在字符串中表示一些数据的规范,它明确地模仿了 JavaScript 对象(以及数组、字符串、数字和布尔值)文字。 您正在尝试动态构建 JavaScript 对象 - 因此您要查找的词是“对象”。
有了这种迂腐,我认为您是在问如何设置对象和数组属性。
// make an empty object
var myObject = {};
// set the "list1" property to an array of strings
myObject.list1 = ['1', '2'];
// you can also access properties by string
myObject['list2'] = [];
// accessing arrays is the same, but the keys are numbers
myObject.list2[0] = 'a';
myObject['list2'][1] = 'b';
myObject.list3 = [];
// instead of placing properties at specific indices, you
// can push them on to the end
myObject.list3.push({});
// or unshift them on to the beginning
myObject.list3.unshift({});
myObject.list3[0]['key1'] = 'value1';
myObject.list3[1]['key2'] = 'value2';
myObject.not_a_list = '11';
该代码将构建您在问题中指定的对象(除了我将其称为 myObject 而不是 myJSON)。 有关访问属性的更多信息,我推荐Mozilla JavaScript 指南和JavaScript: The Good Parts一书。
由于myJSON
是一个对象,您只需设置其属性,例如:
myJSON.list1 = ["1","2"];
如果您不知道属性的名称,则必须使用数组访问语法:
myJSON['list'+listnum] = ["1","2"];
如果要将元素添加到属性之一,则可以这样做;
myJSON.list1.push("3");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.