2017-03-14 40 views
0

我有三個數據從ajax調用返回。我把它們打包成這樣的數組:在ajax中讀取對象數組數組

return json_encode([$salesOrder, $soAddressDetails, $lineItems]); 

然後我去視圖,看看返回。我認爲(作爲一個例子)這樣的:

[ 
    [{ 
     "id": 8591, 
     "reference": "MYCLIENT", 
     "name": "MYCLIENT COMPANY \u00a3", 
     "allocated_status": "", 
     "created_at": "2016-12-02 09:31:00", 
     "order_date": "2016-12-02", 
     "cust_order_number": "", 
     "del_name": "", 
     "consignment": "", 
     "despatch_date": "0000-00-00", 
     "notes_2": "" 
    }], 
    [], 
    [{ 
      "id": 11691, 
      "qty_ordered": 1, 
      "qty_delivered": 0, 
      "sales_order_id": 8591, 
      "due_date": "2016-12-30", 
      "stock_code": "ABC-ABDCDE-01", 
      "record_deleted": 0, 
      "updated_at": null, 
      "unit_price": 0, 
      "sales_order_item_id": null, 
      "comment": null, 
      "created_at": null, 
      "firmware_version": null, 
      "units_assigned": null 
     }, 

     { 
      "id": 11692, 
      "qty_ordered": 1, 
      "qty_delivered": 0, 
      "sales_order_id": 8591, 
      "due_date": "0000-00-00", 
      "stock_code": "MISCELLANEOUS", 
      "record_deleted": 0, 
      "updated_at": null, 
      "unit_price": 232, 
      "sales_order_item_id": null, 
      "comment": null, 
      "created_at": null, 
      "firmware_version": null, 
      "units_assigned": null 
     } 
    ] 
] 

理論上所有我應該需要訪問此,作爲數組result是:

result[0] // sales order details 
result[2] // line items = array of objects 

所以

result[0].reference == 'MYCLIENT' 

result[2][0].stockcode == 'ABC-ABDCDE-01 

但它不會讓我這樣做。如果我console.log(result[0])結果是[,如果我console.log(result[0][0].id)結果是undefined

我做錯了什麼?

+1

測試控制檯和'結果[0] [0] .id'工作。你如何試圖訪問它?結果來自哪裏? – DontVoteMeDown

+2

嘗試做'JSON.parse(result)',好像你的'result'仍然是一個字符串 – surajck

+1

你是如何從php中獲取json的? Ajax(jquery,angular,vanilla等)還是常規請求? –

回答

2

從您問題的最後一行看來,您的result仍然是一個字符串。

嘗試做JSON.parse(result)

0

我想你只是想念關卡。它的參考也在第二級。所以,你需要訪問它,如:

console.info(result[0][0].reference) 
2

要麼你需要說你的反應會是Json的在你的Ajax這樣

dataType: 'json' 

或得到響應後,你必須把它轉換成JSON對象

response = JSON.parse(response);