из строки в ассоциативный массив
Подскажите, как из строки такого вида
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434" Получить вот такое
obj = [{
'': 'ST000012',
name: 'ООО Компания',
PersonalAcc: 234232245234234,
BankName: 'Московское отделение №234234 Сбербанк',
BIC: 837568237,
CoresspAcc: 24524232423424234,
PayeeINN: 2344848585,
Sum: 13123,
'': KP2434
}]
|
lordenas,
split and reduce |
Цитата:
|
lordenas,
ключи уникальными должны быть, или будут презеписываться |
не знаю как присвоить имя объекта :cray:
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var obj = [];
str = str.toString().split("|");
for (i = 0; i < str.length; i++){
str[i] = str[i].toString().split("=");
if(str[i][1]){
obj[i] = {123:str[i][1]};
}else{
obj[i] = {'':str[i][0]};
}
}
console.log(obj);
|
Цитата:
Цитата:
Цитата:
var obj ={};
obj['prop'] = val;
|
var reg = /(?:([^|]+)?=)?([^|]+)/g;
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var current, i = 1, result = {};
while(current = reg.exec(str)){
result[current[1] || 'noname' + i++] = (+current[2]).toString() === current[2] ? +current[2] : current[2];
}
alert(JSON.stringify(
result
,0,4))
Artur_Hopf
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var obj = [];
str = str.toString().split("|");
for (i = 0; i < str.length; i++){
str[i] = str[i].toString().split("=");
obj[i] = {}
if(str[i][1]){
obj[i][str[i][0]] = str[i][1];
}else{
obj[i][''] = str[i][0];
}
}
console.log(obj);
Ещё в современном js можно делать так:
var key = 'keyName';
var obj = {[key]: 'value'};
alert(JSON.stringify(
obj
,0,4))
но пока не стоит.) |
Aetae, то что нужно. Спасибо!
|
| Часовой пояс GMT +3, время: 11:17. |