Javascript 将数组更改为json
我一直在玩javascript和casperjs。我有以下几行代码Javascript 将数组更改为json,javascript,json,casperjs,Javascript,Json,Casperjs,我一直在玩javascript和casperjs。我有以下几行代码 casper.thenOpen('somesite', function() { console.log('clicked ok, new location is ' + this.getCurrentUrl()); // Get info on all elements matching this CSS selector var town_selector = 'div tr'; var
casper.thenOpen('somesite', function() {
console.log('clicked ok, new location is ' + this.getCurrentUrl());
// Get info on all elements matching this CSS selector
var town_selector = 'div tr';
var town_names_info = this.getElementsInfo(town_selector); // an array of object literals
// Pull out the town name text and push into the town_names array
var town_names = [];
for (var i = 0; i < town_names_info.length; i++) {
town_names.push(town_names_info[i].text.trim());}
// Dump the town_names array to screen
utils.dump(town_names);
casper.capture('capture5.png');
});
我怎样才能把它变成json?像这样
{
"Address":"address",
"City":"city",
"State":"state",
"Zip":"zip"
}
提前感谢。您可以使用以下内容:
function arrayToObject(arr) {
var out = {};
arr.forEach(function (element) {
var keyvalue = element.replace(/[\n\s]+/, '').split(':');
var key = keyvalue[0];
var value = keyvalue[1];
out[key] = value;
});
return out;
}
然后你可以做:
var json = JSON.stringify(arrayToObject(myArray));
更新:
>如何将其更改为仅拆分第一次出现的冒号?
使用以下命令:
arr.forEach(function (element) {
var keyvalue = element.replace(/[\n\s]+/, '');
var key = keyvalue.substring(0, element.indexOf(':'));
var value = keyvalue.substring(key.length + 1);
out[key] = value;
});
您可以使用以下内容:
function arrayToObject(arr) {
var out = {};
arr.forEach(function (element) {
var keyvalue = element.replace(/[\n\s]+/, '').split(':');
var key = keyvalue[0];
var value = keyvalue[1];
out[key] = value;
});
return out;
}
然后你可以做:
var json = JSON.stringify(arrayToObject(myArray));
更新:
>如何将其更改为仅拆分第一次出现的冒号?
使用以下命令:
arr.forEach(function (element) {
var keyvalue = element.replace(/[\n\s]+/, '');
var key = keyvalue.substring(0, element.indexOf(':'));
var value = keyvalue.substring(key.length + 1);
out[key] = value;
});
不知道为什么。买我的产品就是这个<代码>{\'Address\':\'Address\',\'City\':\'City\',\'State\':\'State\',\'Zip\':\'Zip\'}将行更改为
var json=ArrayObject(myArray)代码>为我做的。谢谢。我如何才能将此更改为仅拆分第一次出现的冒号?我有一些类似于“计划开始:08:16 AM”的行,我的输出是“计划开始”:“08”我尝试了“var keyvalue=element.split(“:”,1);”,但这不起作用。不确定为什么。买我的产品就是这个<代码>{\'Address\':\'Address\',\'City\':\'City\',\'State\':\'State\',\'Zip\':\'Zip\'}
将行更改为var json=ArrayObject(myArray)代码>为我做的。谢谢。我如何才能将此更改为仅拆分第一次出现的冒号?我有一些类似于“计划开始:08:16 AM”的行,我的输出是“计划开始”:“08”我尝试了“var keyvalue=element.split(':',1);”,但没有成功。