У меня есть ответ от API (на самом деле это составное сообщение из AWS lex), и он выглядит так:

 '{\"messages\":[{\"type\":\"PlainText\",\"group\":1,\"value\":\"Great!\"},{\"type\":\"PlainText\",\"group\":2,\"value\":\"Please click here.\"}]}'

Я не могу изменить ответ на строку, и мне нужно получить из этой строки текст:

«Отлично!» и «Нажмите здесь» .

В основном все, что находится после => "value\":\" и до \"}

Я перепробовал множество подходов, но не смог попасть в точку. Есть ли способ сделать это, я даже попытался написать регулярное выражение, но то, что я мог получить, было строкой раньше, а не фактическим текстом, который мне нужен.

-1
Danny22 10 Окт 2021 в 03:55

2 ответа

Лучший ответ

Почему бы тебе просто не использовать JSON.parse()?

const responseJson = '{"messages":[{"type":"PlainText","group":1,"value":"Great!"},{"type":"PlainText","group":2,"value":"Please click here."}]}';
const response = JSON.parse(responseJson);
const values = response.messages.map(message => message.value);

// values is now ['Great!', 'Please click here.']
1
Robo Robok 10 Окт 2021 в 01:04