这应该很简单,但我已经用了几天时间弄明白,如何将动态创建的JSON对象字符串更改为数组。我想要的是javascript:
var col_model =[ { 'label': 'Name', 'name': 'Name', 'key': 'true', 'width': '75', 'hidden': 'false' }, { 'label': 'FirstName', 'name': 'FirstName' }];
它在我的模型中完美运行,Chrome浏览器接受[对象,对象,对象]。
但是,当我动态创建它时,Chrome浏览器不接受它作为json对象的数组。示例:我首先将其创建为字符串:
var col_model = { 'label': 'Name', 'name': 'Name', 'key': 'true', 'width': '75', 'hidden': 'false' }, { 'label': 'FirstName', 'name': 'FirstName' };
col_model=[col_model];
但是,即使我在selcon dline中添加[]也不一样。我也试图像这样解析它,但它也不起作用:
col_model = $.parseJSON('[' + col_model + ']');
答案 0 :(得分:2)
我不太清楚你想在这里实现什么。假设您要将对象数组(可用作字符串)转换为实际的对象数组,请尝试以下操作。
您的对象数组为字符串
var col_model ="[ { 'label': 'Name', 'name': 'Name', 'key': 'true', 'width': '75', 'hidden': 'false' }, { 'label': 'FirstName', 'name': 'FirstName' }];"
注意两端的"
您可以使用eval
语句将ti转换回对象数组
var newObjArray = eval(col_model)
话虽如此,在使用eval
时必须小心,因为它非常强大且同时具有潜在的危险性。请阅读here。
答案 1 :(得分:1)
看看您的控制台浏览器,肯定会收到类似意外字符串的错误。
那是因为:
var col_model = { 'label': 'Name', 'name': 'Name', 'key': 'true', 'width': '75', 'hidden': 'false' }, { 'label': 'FirstName', 'name': 'FirstName' };
您不能在变量中存储由逗号分隔的两个对象。或者是一个对象数组或是一个单个对象,但你所写的是不正确的。
然后,您可以以正确的方式访问该对象,并设置其值并解析它。
我希望它可以帮助你。