0

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?

2
  • 1
    First in not an array. Second is not valid. You might need to wrap it in [] Commented Oct 19, 2016 at 11:25
  • Above value placed in my hidden text field <input type="hidden" name='xcl_json_val' class='xcl_json_val' value='<?=json_encode($result)?>' /> Commented Oct 19, 2016 at 11:28

1 Answer 1

1

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);

Sign up to request clarification or add additional context in comments.

4 Comments

Using your code, its separate all value to single character.
did you tried the snippet I have attached, what is missing from it?
@abdulkadhar " its separate all value to single character" Then the input is still JSON and has to be parsed with JSON.parse(...) before transforming it with the above script
@abdulkadhar Oh, I thought your input is a JS object rather than the string. Check the updates.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.