动态拼接JSON数组的问题

2019-03-25 13:49|来源: 网路

比如说var level = [["ID","NAME"]];
var newArray = new Array();
newArray.push({\""+level[0][0]+"\":"000"});

在往newArray这个数组中插入新的JSON类型的对象就会报无效字符的错误。求教各位大侠!

问题补充:
antiwise 写道
newArray.push({level[0][0]:"000"});
js 不是java不用转义


感谢你的回复,但是JSON数组的要求很严格,必须使用""框起来,当我去掉转意字符后,又报了缺少":"的错误,请问如何解决呢

问题补充:
clue 写道
JS中定义对象时,属性名是常量吧?

所以,{ a : 1 } 与 { "a" : 1 } 意义相同

你这里要用这样的办法:

var o = {};
o[a] = 1;



clue 非常感谢你的帮助,问题已解决

问题补充:
antiwise 写道
clue 写道

var o = {};
o[a] = 1;

呵呵
这样是对的 因为这是动态给JS对象赋属性
所以 你的代码应该是
var level = [["ID","NAME"]]; 
		var newArray = new Array(); 
		var o={};
		o[level[0][0]]='000';
		newArray.push(o);


antiwise  感谢你的一贯的支持!问题已经解决。

相关问答

更多
  • mybatis中拼接SQL参数用#{} 拼接可执行的函数的参数需要使用${}输出参数.
  • MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。 MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) trim where set foreach
  • 首先,要获取键名,您可以轻松地遍历JSONObject本身, 如下所述 : Iterator keys = response.keys(); while( keys.hasNext() ) { String key = (String)keys.next(); if ( response.get(key) instanceof JSONObject ) { System.out.println(key); // do whatever you want with it ...
  • 遗憾的是,在一个非常重要的方面,对象键不等同于数组键:处理对象键时不保留顺序。 完成您要做的事情的一种方法是: var resultFeed = feedResult.feed.entries.map( function(entry){ delete entry.category; delete entry.content; delete entry.contentSnippet; return entry; }) 关于IE兼容性问题,以下内容来自有关该主题的MDC文档 。 兼容性 map ...
  • 首先,js中的术语可能会令人困惑,所以可以把它弄出来。 是的,几乎所有的js都是一个对象。 但是,数据类型有差异。 一个数组可以像关联数组一样使用,但它与对象文字不同。 var x = []; //array var y = {}; //object literal 数组就像一个列表。 数组的键可以是数字索引或字符串。 var x = ['a','b']; // x[0] === 'a', x[1] === 'b'; var x = []; x['one'] = 'a'; x['blah' ...
  • 代替: var allEngland:Array = [Easy-England,Medium-England,Hard-England]; 尝试这个: var allEngland:Array = Easy-England.concat(Medium-England, Hard-England); 这样你就会有一个'扁平'数组(没有子数组),因此处理起来会更容易。 Instead of: var allEngland:Array = [Easy-England,Medium-England,Hard- ...
  • 您必须将处理逻辑修改为: function changeImages(data){ var gallery = data["gallery"]; for (var key in gallery){ // show all the gallery large images and loop through them console.log(gallery[key].large); } } 我所做的只是将外部去除for ... in并重命名一些变量,使其更清晰。 ...
  • 你可以使用这样的匿名类型: breadcrumbs.Add(new Breadcrumb() { Title = "Page name", Attributes = new { @class = "myclass", datainfo="info stuff" } }); data-info不允许作为属性名称,因此我将其更改为datainfo ,您也可以将其命名为data_info 或者将其定义为Dictionary并使用它: breadcrumbs.A ...
  • 它不起作用,因为splice是数组上可用的方法,而不是对象。 这是一个对象: {"0":"","1":"","2":"","3":"0.0000","4":"","5":"0.00","6":"0.00","7":"1.00","8":"0","9":"false","10":"false","11":[],"12":"","13":"","14":"Red","15":"Small"} 其实你会得到这样的错误: TypeError:undefined不是函数(评估'product_variations ...
  • 问题是当您从数组中删除项目时,数组中其他项的索引向左移动。 假设你在数组中有4个项目( [a, b, c, d] )并且你要移除第一个项目,因此i=0然后第二次迭代中的结果数组将是[b,c,d] , i将是i=1现在有效地你在循环中错过了b var searchresponse = [{ "items": [{ "employeeId": "ABC", "type": "D", "alive": "Yes" }, { "employeeId": "DE ...