• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Wert aus einem Objekt selektieren

Daniel182

New member
Hallo zusammen,

ich arbeite gerade an einer App und stehe da gerade auf dem Schlauch. Ich möchte aus einem Objekt einen bestimmten Wert selektieren, um diesen anschließend in eine if-Anweisung einbauen zu können.
Wenn ich das Objekt in ein String-Array umwandle habe ich die folgende ausgabe:
[{G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:33:35.556", C_SENSOR:"Gas", C_VALUE:"93", C_TIMESTAMP:"2017-01-25 19:33:34.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:33:42.557", C_SENSOR:"Gas", C_VALUE:"92", C_TIMESTAMP:"2017-01-25 19:33:41.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:33:49.558", C_SENSOR:"Gas", C_VALUE:"92", C_TIMESTAMP:"2017-01-25 19:33:48.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:33:56.559", C_SENSOR:"Gas", C_VALUE:"92", C_TIMESTAMP:"2017-01-25 19:33:56.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:34:04.56", C_SENSOR:"Gas", C_VALUE:"92", C_TIMESTAMP:"2017-01-25 19:34:03.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:34:11.56", C_SENSOR:"Gas", C_VALUE:"92", C_TIMESTAMP:"2017-01-25 19:34:10.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:34:18.561", C_SENSOR:"Gas", C_VALUE:"91", C_TIMESTAMP:"2017-01-25 19:34:17.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-25 19:34:25.563", C_SENSOR:"Gas", C_VALUE:"91", C_TIMESTAMP:"2017-01-25 19:34:24.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-26 15:12:52.674", C_SENSOR:"Gas", C_VALUE:"141", C_TIMESTAMP:"2017-01-26 15:12:51.0"}, {G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-26 15:13:12.679", C_SENSOR:"Gas", C_VALUE:"133", C_TIMESTAMP:"2017-01-26 15:13:11.0"}]

Aus diesem Array brauche ich allerdings nur den C_Value-Wert der letzten Zeile hier 133.
Kann mir jemand helfen wie ich diesen einzelnen Wert selektieren kann?

Danke schonmal!
Gruß Daniel
 
Zuletzt bearbeitet von einem Moderator:
sieht nach array of hashes aus dann würde ich das machen: console.log(variable[variable.lenght-1]['C_VALUE']);
 
ok, wie kann ich das schreiben, dass ich am ende eine variable mit dem wert habe ?
 
Zuletzt bearbeitet von einem Moderator:
var wert = variable[variable.lenght-1]['C_VALUE']

geht leider nicht. Ich bekomme mit var wert = variable[variable.length-1] die letzte Zeile aber sobald ich das C_Value anhänge klappt es nicht mehr.
Muss man das C_Value in der Zeile anders abfragen?
So sieht bis jetzt die Ausgabe aus:
({G_DEVICE:"9e19cc56-ca02-40cf-8132-7afea4450015", G_CREATED:"2017-01-26 15:13:12.679", C_SENSOR:"Gas", C_VALUE:"133", C_TIMESTAMP:"2017-01-26 15:13:11.0"})
 
Zuletzt bearbeitet von einem Moderator:
Das funktioniert genau so wie es mikdoe beschrieben hat. Alternativ kannst du auch
PHP:
var wert = variable[variable.lenght-1].C_VALUE;

schreiben. Beide Varianten in jsfiddle.
 
Warum wandelst du das in eine String-Array um? Ein Array von Objekten wäre viel hilfreicher und dann funktioniert auch die Lösung von oben. In wecher Form bekommst du das denn woher?
Hab das raus gemacht mit dem String Array ist jetzt direkt das Objekt.
Das Objekt wird von einer Funktion befüllt. Diese holt immer die letzten 10 Nachrichten von einer Datenbank und speichert diese in dem Objekt.
Das Objekt heißt oData. Ich würde dann den Zugriff oben so in meinen Code einbauen:

var wert = oData[oData.lenght-1].C_VALUE;

passt das?

Ich möchte den Wert anschließend in einem alert in meiner app ausgeben.
Dazu habe ich dann:

alert(wert);

Leider wird mir nur bei var wert = oData[oData.lenght-1] die letzte Zeile angezeigt. Sobald ich das C_Value mit einbaue, zeigt es mir gar nichts mehr an.
Hat jemand eine Idee?

Hab gerade gesehen das die Nachrichten im JSON-Format sind. Das muss erst übersetzt werden nehme ich an? Deswegen geht die Abfrage bestimmt auch nicht oder?

Danke schonmal für die Antworten.
 
Zuletzt bearbeitet:
im Fiddle hast du doch 1 a lauffähigen code! einfach abschreiben.

Ja hab ich gemacht, aber wenn ich diesen Code einfüge wird mir in meiner App gar kein Fenster angezeigt.
Ich bekomme wenn ich
var array = object[9];

eingebe die letze zeile in einem Fenster angezeigt.
Wenn ich aber den vorgeschlagenen code
var array = object[object.length-1]
eingebe bekomme ich kein Fenster.

Ich verstehe es nicht.
 
Hab das mit dem übersetzten in JSON probiert aber da bekomme ich keine ausgabe und diesen Fehler in der Konsole: SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
Hat das vllt ein Problem mit den geschweiften Klammern in der Nachricht?
 
Zuletzt bearbeitet:
Sehe auch gerade erts, dass das kein vaides JSON ist. Die Eigenschaftsnamen müssen in " stehen:
Code:
[{"G_DEVICE":"9e19cc56-ca02-40cf-8132-7afea4450015", "G_CREATED":"2017-01-25 19:33:35.556", "C_SENSOR":"Gas", "C_VALUE":"93", "C_TIMESTAMP":"2017-01-25 19:33:34.0"}, ...]

Wo hast du denn diese Strings her?
 
Zurück
Oben