Javascript - разбирать строковые массивы строк - PullRequest
0 голосов
/ 09 марта 2020

У меня есть такая строка:

a= "['url1','url2','url3']"

, поступающая с сервера. Я хочу преобразовать ее в массив, например:

arr = ["url1","url2","url3"]

, но JSON.parse не похоже на работает и выдает следующую ошибку:

SyntaxError: Unexpected token ' in JSON at position 1

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 10 марта 2020

Ваша строка должна быть в одинарных кавычках, чтобы JSON .parse работал в этом примере, также строковое представление в json использует двойные кавычки в соответствии со стандартом.


JSON.parse('["url1","url2","url3"]')

0 голосов
/ 10 марта 2020

Попробуйте использовать этот код:

a = "['url1','url2','url3']"
urls = a.split(',')
arr = urls.map(url => url.replace(/'|\[|\]/g, ''))

console.log(arr) // ["url1", "url2", "url3"]

https://jsfiddle.net/z1frh8ys/

0 голосов
/ 10 марта 2020

Вам необходимо заменить одинарные кавычки на двойные. Самый простой способ добиться этого - заменить их на экранированные кавычки, например:

let validJSON = a.replace(/'/g, "\"")

JSON.parse(validJSON)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...