2016-04-18 16 views
-4

Ich kann JSON als einzelne oder mehrere Datenquelle bekommen und ich muss es analysieren, um einen bestimmten Wert zu erhalten. Wie gehe ich vor, um einen bestimmten Wert zu bekommen, dann setze ich ihn in eine Zeichenkette und vergleiche die Werte, um eine einzelne Zeichenkette zu erhalten, die unten dargestellt wird.Wie durch JSON Schleife und erhalten Sie einen bestimmten Wert

var info; 

info= { 
"rows": [ 
{ 
    "id": 1, 
    "data": [ "", "1", "s", "Al", "A" ] 
} 
] 
}; 

info= { 
"rows": [ 
{ 
    "id": 1, 
    "data": [ "", "1", "s", "Al", "A" ] 
}, 
{ 
    "id": 2, 
    "data": [ "", "1", "s", "Az", "A" ] 
}, 
{ 
    "id": 3, 
    "data": [ "", "2", "s", "Co", "A" ] 
} 
] 
}; 


var jsonData; 

Ich bin nicht sicher, wie json und Extrahieren von Daten in einer Schleife durch [1] dann jeden Wert in String setzen wie zum Beispiel: 1,1,2.

var jstring = jsonData 

hier meine für jedes Element ist, dass ich in einen String zu setzen bin versucht

$.each([ jstring ], function(index, value) { 
if(g.includes(string)) { 
    console.log(value + " exists"); 
} 
    else 
{ 
    g = g + value; 
} 
}); 

was ich möchte ist, haben g suchen, wie: 1,2

Irgendwelche Hilfe würde am meisten geschätzt werden.

Antwort

1

Wie wäre es etwa so:

var outputString = info.rows.reduce(function(arr, row){ 
    return arr.concat(row.data[1]); 
}, []).join(","); 

Hier ist ein Link auf einigen docs ist, wie funktioniert reduzieren:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

Grundsätzlich Ihre Reihen ist ein Array, so reduzieren wendet eine Funktion auf JEDES Element in diesem Array an und sortiert die Ausgabe mit einem so genannten Akkumulator. Unser Akkumulator ist in diesem Fall die arr Variable. Für jedes Element im Zeilenarray verketten wir diesen Wert mit unserem akkumulierten Array und übergeben diesen Wert dann an die nächste Iteration. Wir übergeben die leeren Klammern als zweites Argument, um den Anfangswert zu reduzieren, was bedeutet, dass wir mit einem leeren Array beginnen wollen. Sobald die Verkleinerung beendet ist, bleibt ein Array übrig, das in diesem Fall wie [1,1,2] aussehen wird. An diesem Punkt können wir .join (",") verwenden, um jedes Element in unserem neuen Array zu einer Zeichenfolge zu verbinden, die durch ein Komma getrennt ist.

+0

Ich habe diesen Fehler: Uncaught TypeError: Kann Eigenschaft 'reduce' von undefined nicht lesen – wl2m

+0

Ich denke, ein Filter sollte auch angewendet werden, um Duplikate zu entfernen. –

+0

Wie würde ich durch den JSON iterieren, um den Array-Wert für die Spalte von 1 zu finden? – wl2m

Verwandte Themen