abdul kadhar
abdul kadhar

Reputation: 387

JSON: Convert numeric array to object

This is the JSON I get when encoding an array using jQuery:

{"1":{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
"2":{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
"3":{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
"4":{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
"5":{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"}}

But I need an object like this:

[{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"},
{"name":"11233","po":"121212","po_item_number":"000001","po_item_material_code":"material","po_item_description":"assemble","sales_order":"11000000","sales_order_item":"10","tracable":"sds"}]

How can I do that?

Upvotes: 0

Views: 81

Answers (1)

gurvinder372
gurvinder372

Reputation: 68393

If your input is a String, then first parse it into the object.

var obj = JSON.parse( inputStr );

try this (assuming obj is the input)

var output = Object.keys( obj ).map( function(key){
  return obj[ key ];
})

var obj = {
  "1": {
    "name": "11233",
    "po": "121212",
    "po_item_number": "000001",
    "po_item_material_code": "material",
    "po_item_description": "assemble",
    "sales_order": "11000000",
    "sales_order_item": "10",
    "tracable": "sds"
  },
  "2": {
    "name": "11233",
    "po": "121212",
    "po_item_number": "000001",
    "po_item_material_code": "material",
    "po_item_description": "assemble",
    "sales_order": "11000000",
    "sales_order_item": "10",
    "tracable": "sds"
  },
  "3": {
    "name": "11233",
    "po": "121212",
    "po_item_number": "000001",
    "po_item_material_code": "material",
    "po_item_description": "assemble",
    "sales_order": "11000000",
    "sales_order_item": "10",
    "tracable": "sds"
  },
  "4": {
    "name": "11233",
    "po": "121212",
    "po_item_number": "000001",
    "po_item_material_code": "material",
    "po_item_description": "assemble",
    "sales_order": "11000000",
    "sales_order_item": "10",
    "tracable": "sds"
  },
  "5": {
    "name": "11233",
    "po": "121212",
    "po_item_number": "000001",
    "po_item_material_code": "material",
    "po_item_description": "assemble",
    "sales_order": "11000000",
    "sales_order_item": "10",
    "tracable": "sds"
  }
};

var output = Object.keys(obj).map(function(key) {
  return obj[key];
})

console.log(output);

Upvotes: 1

Related Questions