2016-02-16 3 views
0

Не можете найти помощь на этом где-нибудьПреобразовать массив элементов в массив JSON объектов

У меня есть массив -

var myArray = [1,2,3]

Но мне это нужно, чтобы стать -

[{"val" : 1, "checked" : false}, {"val" : 2, "checked" : false},{"val" : 3, "checked" : false}]

Как это делается?

+0

http://stackoverflow.com/questions/3975859/what-are-the-differences-between-json-and-javascript-object – techfoobar

ответ

7

{'val' = 1, 'checked' = false} не является допустимым форматом JSON, так как ключ и значение должны быть разделены двоеточием : не =, он должен быть {"val" : 1, "checked" : false}

Попробуйте с ниже,

var newArray = myArray.map(function(value){ 
    return {"val" : value, "checked" : false}; 
}) 
+1

+ для правильного действительного формата JSON используйте двойные кавычки вместо – Diljohn5741

+0

Для правильного json вам понадобится вся строка в виде строкового литерала. не лучше ли было бы справиться с этим в одном месте, в котором вы действительно нуждаетесь, чтобы быть реальным json, используя JSON.stringify, в отличие от выполнения небольших метапрограмм, подобных всему вашему приложению? @ Diljohn5741 –

+0

@DustinStiles, это называется «строковое представление» JSON .. – Rayon

2

Попробуйте это:

var myArray = [1, 2, 3]; 
var jsonText = []; 
for (i = 0; i < myArray.length; i++) { 
    jsonText[i] = {}; 
    jsonText[i].val = myArray[i]; 
    jsonText[i].checked = false; 
} 
JSON.stringify(jsonText); 
+0

А я вижу, как это сработает, но я доволен ответом, который я принял. Спасибо за ваш вклад, и я поддержал его. – xeon48

+1

просто рад помочь, а другой ответ - более короткая версия. – Sandeep

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