2015-12-12 2 views
2

У меня есть требование, когда у меня есть объект JSON, который должен быть преобразован в массив пар ключей/значений.преобразование объекта JSON в JS пары ключей/значений Array

JSON:

Object {id: "1213115", transac_status: "Y", trans_id: "601427"....} 

Это должно быть преобразовано в JS массива, как показано ниже: JS Массив:

var transData = [{ id: "1213115", transac_status: "Y", trans_id: 601427".... ]; 

Я попытался ниже скрипт для преобразования.

var transData = $.map(Object , function (e2, e1) { 
    return [[e2, e1]]; 
}); 

Массив не был преобразован, как и ожидалось, Вместо этого он имеет следующее: -

Array[2] 
, 
Array[2] 
, 
Array[2] 
, 
Array[2] 

..... и т.д.

+0

Вы хотите, чтобы весь 'объект' содержался внутри' array'? или создать «массив» для каждого ключа/значения? – Moin

+0

Это несколько путано, ваш пример кажется просто «var transData = [Object]»? – adeneo

+0

@Moin: Я хочу, чтобы весь объект был преобразован как один массив. Не каждый кери/значение как массив. – AzhaguLakshman

ответ

0

Предполагая объект представляет собой список объектов

var arr = []; 

$.map(Object, function(item) { 
    arr.push(item); 
}); 

Это подтолкнет каждый объект к массиву;

Example

1

Там нет ничего плохого с кодом, я думаю. Вы сказали, что вы хотите, чтобы произвести массив пар ключ-значение, которые вы на самом деле:

Array[2] , Array[2] , Array[2] , Array[2] 

Это просто выход, который console.log производит. Если присмотреться в массиве, вы увидите, что это на самом деле:

[["1213115", "id"], ["Y", "transac_status"], ["601427", "trans_id"]] 

Думая об этом, вы, вероятно, захотите переключить пару ключ/значение, например:

var transData = $.map(Object , function (value, key) { 
    return [[key, value]]; 
}); 

Я переименовал аргументы функции, чтобы сделать вещи немного яснее.

выход будет:

[["id", "1213115"], ["transac_status", "Y"], ["trans_id, "601427"]] 

Типп: Если вы работаете в браузере, вы можете просто вывести весь массив с этой линией, которая дает вам хороший выход таблицы формы:

console.table(transData); 

enter image description here

Это что вы ищите? Надеюсь, это поможет.