2013-12-09 3 views
0

Как преобразовать эту строку:Использование jQuery/JS, как преобразовать эту строку в 2 массива?

{ array1: [ 'mary', 'steve', 'george' ], 
    array2: [ 'dog', 'cat', 'hobbit' ] } 

В 2-х массивов?

Я пробовал следующее, но у меня была синтаксическая ошибка.

var array = JSON.parse("[" +string + "]"); 

спасибо.

EDIT

Я пробовал:

var results = $('#progress').text(); 
var obj = JSON.parse(results); 
var array1 = obj.array1; 
var array2 = obj.array2; 
console.log(array1); 

Но я получаю unexpected token a

EDIT 2

Я использую это, чтобы получить информацию от MongoDB:

BlogPost.find(query, {"array1":"true", "array2":"true", "_id":0}, function(err, results){ 

    query.exec(function (err, post) { 
    if (err) return next(err); 
    if (!post) return next(); // 404 

    res.render('post/view.jade', { post: post, comments: promise, results: results }); 
    }) 
}) 
+0

Вы уверены, что это строка? Как вы его разместили, это уже объект JSON. Вы можете получить два массива, используя 'obj.array1' и' obj.array2'. – Kyle

+0

Вы хотите преобразовать их в 2 массива или хотите объединить все массивы в 1? – PSL

+0

Я хочу иметь 2 массива, что я могу манипулировать клиентской стороной – Squirrl

ответ

2

Это не является строкой, это объект. Чтобы преобразовать в действительный объект JSON, вам нужно только сделать свои строки ключей. т.е.

{ 
    'array1': [ 'mary', 'steve', 'george' ], 
    'array2': [ 'dog', 'cat', 'hobbit' ] 
} 

UPDATE: Похоже, что вы просто хотите получить доступ к массивам

Чтобы сделать это просто присвоить переменный и доступ, как этот

var arrays = { 
    array1: [ 'mary', 'steve', 'george' ], 
    array2: [ 'dog', 'cat', 'hobbit' ] 
} 

console.log(arrays.array1); 
console.log(arrays.array2); 
+0

Как это сделать? Я получаю, если из монго без строк? (т. е. нет одиночных кавычек на клавишах) – Squirrl

+1

Вы просто пытаетесь использовать его как обычный объект? Если это так, вы можете просто сделать выше. Обновление сейчас –

+0

Я пытаюсь иметь 2 массива, которые я могу пропустить через браузер. Я получил выше текст, который я отправил из моего запроса mongo find(). Я попробовал JSON.stringy на стороне сервера, и это все котировки, но я все еще не мог разделить их на 2 массива. Спасибо :) – Squirrl

2

я бы просто сделать

var obj = JSON.parse(string); 
var array1 = obj.array1; 
var array2 = obj.array2; 
+0

Не могли бы вы рассказать мне, почему мой json не отформатирован правильно с тем, что я опубликовал в приведенном выше редактировании? – Squirrl

+1

@Squirrl это поможет точно узнать, что такое 'результаты'. –

+0

'results' is' {array1: ['mary', 'steve', 'george'], array2: ['dog', 'cat', 'hobbit']} ', по крайней мере, вот что выглядит после он отображает использование этого нефрита '# progress = results' – Squirrl

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