2017-03-06 2 views
-1

Ich habe eine (verschachtelte) Datenstruktur mit Objekten und Arrays. Und versuchen, Daten zu senden, aber nur einen Wert anzuzeigen.So legen Sie verschachtelte JSON-Daten auf Datenträgern fest?

JSON-Daten:

{ 
"data": [{ 
    "name": "name1", 
    "value": "value1", 
    "list": [{ 
    "sname": "sname1", 
    "svalue": "svalue1" 
    }, { 
    "sname": "sname2", 
    "svalue": "svalue2" 
    }] 
}] 
} 

JSON-Daten über URL bekommen von Java verwendet wird.

jQuery-Code:

var pk = $("#pk").val(); 
console.log(pk); 
url = "/register/search?id=" + pk; 
console.log(url); 
$('#largeTable').DataTable({ 
"ajax": url, 
"bDestroy": true, 
"columns": [{ 
    "data": "name" 
}, 
{ 
    "data": "value" 
}, 
{ 
    "data": "list.1.sname" 
}, 
{ 
    "data": "list.1.svalue" 
}, 
{ 
    "data": null, 
    "defaultContent": editview 
} 
] 
}); 

Hier ist es möglich, durch die Verwendung list.1 oder list.0

Aber ich möchte zwei Werte zu einem Zeitpunkt entweder ersten oder zweiten list Werte anzuzeigen.

+0

Dies ist ein [Kopieren und Einfügen] (https://stackoverflow.com/questions/42619683/how-to-get-a-specific-or-multiple- values-or-keys-from-nested-json) aus Ihrer Frage vier Stunden vorher. – halfer

+0

Mögliches Duplikat von [Wie man einen bestimmten oder mehrere Werte (oder Schlüssel) von verschachtelten json erhält] (http://stackoverflow.com/questions/42619683/how-to-get-a-specific-or-multiple-values- oder-keys-from-nested-json) – halfer

Antwort

2

Ihre list in JSON-Datenstruktur ist ein Array. Also, sollten Sie

list.forEach(function(element) { 
    //console.log(element); 
}); 

verwenden Sie können ein Objekt erstellen und JSON bauen dynamisch und setzt sie auf „Spalten“ Array. Hier

ein Beispiel:

// make an empty object 
var myObject = {}; 

// set the "list1" property to an array of strings 
myObject.list1 = ['1', '2']; 

// you can also access properties by string 
myObject['list2'] = []; 
// accessing arrays is the same, but the keys are numbers 
myObject.list2[0] = 'a'; 
myObject['list2'][1] = 'b'; 

myObject.list3 = []; 
// instead of placing properties at specific indices, you 
// can push them on to the end 
myObject.list3.push({}); 
// or unshift them on to the beginning 
myObject.list3.unshift({}); 
myObject.list3[0]['key1'] = 'value1'; 
myObject.list3[1]['key2'] = 'value2'; 

myObject.not_a_list = '11'; 
+0

aber datable Spalte wie Werte zu beheben – user7646838

+0

vielleicht wird es hilfreich sein: https://datatables.net/forums/discussion/32993/best-way-to-update-cell-in -auf Datenbasis in einer anderen Zelle basieren – Yaroslav

Verwandte Themen