Разбор ответа на строку данных - PullRequest
0 голосов
/ 03 апреля 2020

Я застрял при анализе ответа на данные, полученного от какого-либо стороннего поставщика. ответ выглядит примерно так: -

data: ()(responseCode='A01', responseMessage='Approved', accountNumber='qwerty');

Я пробовал несколько способов синтаксического анализа / stringify, но он не дает мне JSON ответ. Я также попробовал странные комбинации функций Querystring, но это не помогло. Я сильно застрял в этом.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Вы можете использовать регулярное выражение для преобразования его в действительную структуру JSON.

let data = `data: ()(responseCode='A01', responseMessage='Approved', accountNumber='qwerty');`;

let modified = data
.replace(/\s/g,'')
.replace("data:()(",'{\'')
.replace(");",'}')
.replace(/=/g,"':")
.replace(/,/g,",'")
.replace(/'/g,'"')

let json = JSON.parse(modified);
console.log(json)
0 голосов
/ 03 апреля 2020

Я опубликую обходной путь, он может быть неэффективным, но даст вам результат.

var data = "data: ()(responseCode='A01', responseMessage='Approved', accountNumber='qwerty');";
var temp = data.substring(8,);
temp = temp.replace("(","{");
temp = temp.replace(")","}");
temp = temp.replace(/=/g,":");
temp = temp.replace(";","");
temp = eval('(' + temp + ')');
var Result = JSON.stringify(temp)

Результат: {"responseCode": "A01", "responseMessage": "Approved", "accountNumber ":" QWERTY "}

...