我有从文件接收的对象形式的字符串数组,只需要在对象的参数名称周围添加引号,这些对象是数组中的字符串,并且在方括号之间的值周围将这些字符串转换为正确的对象。
["{Durdham Hall Electric: [e4.kwh]}", "{University Hall Substation: [e1.kwh]}",
"{University Hall Substation: [e2.kwh]}"]
我不知道如何遍历值并在所需部分中添加所需的符号。
答案 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
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;
答案 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;
相信这样的事情可行,但你必须做出一些假设。这仅适用于单个元素,因此您可以为字符串数组中的每个项目设置一个循环。