2012-06-21 3 views
2

У меня есть переменная, которая содержит следующую JSON строку:Преобразование JSON в массив

{ 
    "0" : "Jun 20, 2012 03:02 PM", 
    "1" : "Jun 20, 2012 03:26 PM", 
    "2" : "Jun 21, 2012 01:12 PM", 
    "3" : "Jun 21, 2012 01:25 PM", 
    "4" : "Jun 21, 2012 02:42 PM", 
    "5" : "Jun 21, 2012 02:43 PM", 
    "6" : "NULL" 
} 

Я желаю, чтобы преобразовать этот JSON в массив в JavaScript таким образом, что массив [0] имеет «20 июня 2012 03:02 PM "array [1] имеет" 20 июня 2012 15:26 "и так далее.

+1

Зачем его переназначать? В качестве объекта вы уже можете получить доступ к нему с помощью синтаксиса типа 'object [0]' (если вам не нужна итерация массива с использованием '.length') –

+0

@Michael, потому что объекты имеют определенную цель как структуру данных, а также массивы. В этом случае я бы сказал, что массив имеет гораздо более смысловой смысл. Разумеется, если дело касается стоимости исполнения, кто знает. – Cecchi

+0

Не быть wiener, но это объект, а не объект JSON. – iambriansreed

ответ

0

вар CurrentVersion = {/ буквальным} {$ displayedVersion} {буквальным}; var jsonObj = eval ('(' + {/ literal} {$ json} {literal} + ')');

+0

Я нахожу этот ответ путаным; можете ли вы уточнить или разработать? –

+0

Я не создавал JSONObject в Javascript. Я просто пытался получить доступ к JSON .. вместо этого я пытался получить доступ к JSON String – CodeMonkey

5

Сначала вы должны разобрать свою строку JSON в объект javascript.

JavaScript

var object = JSON.parse(JSONString); 

Для polyfill браузеров без поддержки JSON: http://bestiejs.github.com/json3/


Затем преобразовать этот объект в массив:

JavaScript

var arr = []; 
for(var i in object) { 
    if(object.hasOwnProperty(i)) { 
     arr.push(object[i]); 
    } 
} 

JQuery

var arr = $.map(obj,function(value){ return value; }); 

Fiddle: http://jsfiddle.net/iambriansreed/MD3pF/

Примечание: Так как оригинальный постер не говоря уже о JQuery стоит отметить, что загрузка JQuery только для этих случаев не стоит, и вам будет лучше использовать чистый JavaScript, если вы еще не используете jQuery.

+0

Извините, что угодил туда. ;) – iambriansreed

+1

Нет проблем, один полный ответ лучше, чем два частичных ответа;) – ddlshack

+0

черт возьми, вы, ребята, быстрые – ZnArK

2

В качестве альтернативы, если вы ориентируетесь ES5 и выше:

// myObject = { '0': 'a', '1': 'b' }; 
var myArray = Object.keys(myObject).map(function(key) { return myObject[key]; }); 
// myArray = [ 'a', 'b' ]; 
Смежные вопросы