2017-08-11 49 views
-2

我一直在使用我必須使用JQuery的應用程序。 和我有關係到我以下提到的代碼的兒子和孫子我的類函數的一個問題:jQyery輸出是對象Object寧靜的web應用程序

如果我輸入到我的瀏覽器http://localhost:8080/fathers

編輯

我得到:

[{ 「ID」:1,其中 「fname」:其中 「fname」, 「L-NAME」: 「L-NAME」, 「兒子」:[{ 「ID」:1,其中 「fname」:其中 「fname」, 「L-NAME」:「L-NAME 「,」孫子「:[{」id「:1,」fname「:」fname「,」lname「:」lname「}]}]}]

以我目前的$ .getJSON我得到下面的輸出:

的兒子:[objtct對象] 的孫子:未定義

+0

所以第一個問題是你的引用JSON是無效的。它最後缺少'}]'。另外,'for-in'不用於循環數組;看看[這個問題的答案](https://stackoverflow.com/questions/9329446/for-each-over-an-array-in-javascript)如何循環數組。還要注意,你的引用結構,最後用'}]'是一個*嵌套*結構,而不僅僅是一個平面數組;你的代碼沒有任何處理。 –

+0

因爲'data [i] .sons'是一個對象數組,並且'data [i] .grandsons'根據你所顯示的JSOn不存在,所以它是'data [i ] .sons' –

+0

考慮到你的Java類,'sons'將是一個數組,因此是'object'輸出,並且沒有'grandsons'屬性,因此未定義。 「孫子」是「兒子」班的一個屬性。 –

回答

0

數據[I] .sons是一個數組,當你把陣列直接內部的html它輸出[objtct對象]

for(var i in data){ 
    var sons = data[i].sons; 
    for(var j in sons){ 
    var son = sons[j]; 
    var grandsons = son.grandsons; 
    for(var k in grandsons){ 
     var grandson = grandsons[k]; 
    } 
    } 
} 

在你的情況嘗試:

$('#tag').append("<p>sons: " + data[i].sons.map(son => son.fname + ' ' + son.lname).join(', ') + "</p>") 

var grandsons = data[i].sons.map(son => son.grandsons.map(grandson=>grandson.fname + ' ' + grandson.lname)) 
$('#tag').append("<p>grandsons: " + [].concat.apply([], grandsons).join(', ') + "</p>") 
+0

我認爲你需要創建表單並對其進行序列化,你可以找到簡單的教程。你不應該做的是按照你現在正在做的方式來獲得價值。 –