из строки в ассоциативный массив
Подскажите, как из строки такого вида
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, время: 08:04. |