簡體   English   中英

無法訪問JSON數組中的元素

[英]Can't access an element in JSON array

沒有人真正回答過這個問題,但是到底怎么可以使用JavaScript從php / mysql直接使用JavaScript從JSON返回數據呢?

這是我使用JSON.parse並將其保存到Javascript變量obj的返回數據

[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]

我已經嘗試過簡單的obj.stuname但是它只返回一個undefined我已經嘗試了很多次以了解它,但是我似乎根本無法使用此數組。 有人可以幫忙嗎?

我也嘗試過reObj = {"stu":obj}; 樣式,但僅返回[object Object]

所以請有人詳細說明嗎?

obj是一個json array ,因此您必須使用其index訪問元素。

另外,您必須使用JSON.parse才能將json文本string轉換為Javascript對象。

嘗試這個:

var stuname=obj[0].stuname;

 var obj='[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]'; var objParsed=JSON.parse(obj); console.log(objParsed[0].stuname); 

如果要迭代array ,請使用forEach方法。

 var obj='[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]'; var objParsed=JSON.parse(obj); objParsed.forEach(function(item){ console.log(item.stuname); }); 

  1. 如果您是通過ajax從php獲得此響應的。 確保使用dataType作為json來獲取json類型響應而不是字符串。

  2. 否則,您需要像這樣解析json數據

     obj = JSON.parse(jsonStrFromPhp); 

然后,您可以以obj.stuname或obj [0] .stuname的形式獲取數據,具體取決於您是如何從php返回的,像這樣的{"stu":obj}或這樣的[{"stu":obj}]

當我偏頭痛的時候...為什么我的代碼是錯誤的,事實證明,即使obj = JSON.parse(jsonStrFromPhp); 僅返回一個[object Object],[object Object] javascript [object Object],[object Object]實際上可以理解shins並返回了我的變量...多么令人困惑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM