#javascript #arrays #json
#javascript #массивы #json
Вопрос:
У меня есть следующая строка
['Value',2],['Value2',4],['Value3',10]
Я хотел бы преобразовать это в массив javascript. Я должен быть в состоянии
var tmpStrings = "['Value',2],['Value2',4],['Value3',10]";
var arrStrings = JSON.parse("[" tmpStrings "]");
К сожалению, я получаю неожиданные ошибки символов. Я думал, что это могут быть одинарные кавычки, но их экранирование ничего не меняет. Кажется, что Int работает нормально, приведенное ниже работает для меня нормально
var tmpInts = "[4,2],[5,3],[6,3]";
var arrInts = JSON.parse("[" tmpInts "]");
Комментарии:
1. Можете ли вы показать ожидаемый результат. Не на 100% ясно, что вам нужен массив массивов, хотя я подозреваю, что это так.
2. недопустимы одинарные кавычки JSON — вот почему он терпит неудачу
3. Вы можете перевернуть его
var tmpStrings = '["Value",2],["Value2",4],["Value3",10]';
Ответ №1:
JSON не будет принят '
. Итак, вам нужно изменить это на двойные кавычки, например
console.log(JSON.parse("[" tmpStrings.replace(/'/g, '"') "]"));
# [ [ 'Value', 2 ], [ 'Value2', 4 ], [ 'Value3', 10 ] ]
Мы просто заменяем все '
в строке на двойные кавычки.
Предупреждение: это заменит '
на "
, даже если оно появляется в середине строки.