2016-05-03 3 views
1
var vString = "{ "var1":"varA", "var2":"varB", "var3":"varC" }"; 

var literalArray = vString; 

console.log(literalArray["var1"]); // = varA 

Как строка может быть преобразована в литерал массив?Можно ли преобразовать строку в массив литералов?

+0

Эта строка синтаксически неправильно, и если бы не было это будет JSON-представление * объекта *, но не * массива *. – Pointy

ответ

1

Это будет работать для вас ...

var string = '{"var1":"varA", "var2":"varB", "var3":"varC" }'; 
 
var objectArray = (new Function("return " + string+ ";")()); 
 
console.log(objectArray.var1);

+0

Против использования этого метода? – CPLUSPLUS

+0

@CPLUSPLUS, я так не думаю, что это работает для этого простого 'string =" 0,1,2 ";' также и он будет разделять строку из '' '' '' '' 'только ... –

+0

Спасибо и он работает очень хорошо! – CPLUSPLUS

2

Измените код, как указано ниже:

var vString = '{ "var1":"varA", "var2":"varB", "var3":"varC" }'; 

var literalArray = vString; 

console.log(JSON.parse(literalArray)["var1"]); 
+0

Возможно ли это без JSON? – CPLUSPLUS

+0

@CPLUSPLUS no. И это не массив. – Pointy

+0

@CPLUSPLUS, вам может понадобиться написать свою собственную функцию синтаксического анализа. Я не вижу вреда в использовании JSON.parse, поскольку он встроен в javascript. –

Смежные вопросы