在数组值中添加引号

时间:2015-08-19 16:31:13

标签: javascript

我有从文件接收的对象形式的字符串数组,只需要在对象的参数名称周围添加引号,这些对象是数组中的字符串,并且在方括号之间的值周围将这些字符串转换为正确的对象。

["{Durdham Hall Electric: [e4.kwh]}", "{University Hall Substation: [e1.kwh]}", 
"{University Hall Substation: [e2.kwh]}"]

我不知道如何遍历值并在所需部分中添加所需的符号。

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式和forEach执行此操作:

var data = ["{Durdham Hall Electric: [e4.kwh]}", "{University Hall Substation: [e1.kwh]}", 
"{University Hall Substation: [e2.kwh]}"];

data.forEach(function(v,i){
  data[i] = JSON.parse( v.replace(/{(.+):\s\[(.*)\]}/g, '{"$1":["$2"]}') );
});

console.log(data); // Open your console to see the results

答案 1 :(得分:1)

也许改变

options.push('<option value="' + '{' + data[devices][1] + ': ' + '[' + 'e' + i + '.kwh' + ']' + '}' + '" >' + meterName + '</option>')

这样的东西,然后你得到一个很好的可解析的JSON

&#13;
&#13;
var data = [[0, 'Durdham Hall Electric:']],
    devices = 0,
    meterName = 'meterName',
    i = 3,
    options = [];

options.push('<option value="' + '{ \\"device\\": \\"' + data[devices][1] + '\\", \\"kwh\\": \\"' + 'e' + i + '\\"}' + '">' + meterName + '</option>');

alert(options);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果字符串始终以{您可以使用子字符串开头,然后将字符串重新组合在一起。

String part1;
String part2;
String result;

String str = "{Durdham Hall Electric: [e4.kwh]}"

然后使用index of找到:

part1 = str.subString(1, str.indexOf(":"));
part2 = str.subString(str.indexOf(":"), str.length());
result = "{\"" + part1 + "\"" + part2;

相信这样的事情可行,但你必须做出一些假设。这仅适用于单个元素,因此您可以为字符串数组中的每个项目设置一个循环。