2017-04-24 2 views
0

Ich habe eine JS-Variable, die eine serialisierte C# -Liste mit JavaScriptSerializer erhalten.Get Array-Werte von benannten Index JS

die Zeichenfolge in die JS Variable nach Serialisierung vergangen ist wie folgt:

{"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14}{"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14} 

Ich möchte alle "Values" in einem Array x setzen und alle "Date" in einem Array y.

Wenn ich x: source["Date"] und y: source["Value"] mache, bleiben x und y leer.

Warum ist das?

+0

mich korrigieren, wenn ich falsch bin, auf den ersten Blick, ich erwarte, dass das JSON-Format [{}, {}, {}] (Array von Objekten) – Noobit

Antwort

2

Ihr Json ist nicht richtig formatiert, aber wenn Sie es in das richtige Json-Format korrigieren, können Sie JavaScript Map verwenden, um zu erreichen, was Sie brauchen.

let arr = '[{"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14}, 
      {"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14}]'; 

let source = JSON.parse(arr); 

let x = source.map(x=> x.Date); 
let y = source.map(x=> x.Value); 

console.log(x); 
//[ 'April 2017 - April 2017', 'April 2017 - April 2017' ] 

console.log(y); 
//[ 14, 14 ] 
+0

Ich habe ECMAScript 5 und nicht ECMAScript 2015 sein Was würde dieser Ausdruck in ECMAScript 5 tun? (Ich bin Neuling zu js ...) –

+0

Ersetzen Sie einfach mit var. Map sollte mit es5 funktionieren. – luly

+1

** var x = source.map (Funktion (x) {return x.Date;} ** hier erfahren Sie mehr https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/Array/map? V = Steuerelement – luly