• 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

ich weiß bei dir immer nicht, was du da treibst.
das json aus deinem 1. beitrag hat [ und ], da dürfte diese meldung nicht kommen.
 
ich weiß bei dir immer nicht, was du da treibst.
das json aus deinem 1. beitrag hat [ und ], da dürfte diese meldung nicht kommen.

Hab grad nochmal geschaut. Also das im ersten mit den zehn Nachrichten bekomme ich nur wenn ich das objekt in ein String-Array umwandle und ausgebe.
Gebe ich nur das Objekt aus kommt : objekt objekt objekt objekt
 
am besten ist immer, wenn man fragen stellt denn keiner hat hier eine glaskugel.

Das stimmt leider.

Die Frage ist immernoch wie aus dem folgenden String-Array das letzte C_Value (133) auswählen kann:

[{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"}]
 
Zuletzt bearbeitet von einem Moderator:
wieder keine quote tags verwendet...

Das stimmt leider.
Die Frage ist immernoch wie aus dem folgenden String-Array das letzte C_Value (133) auswählen kann:
von vorne fange ich aber nicht an. dafür kannste dir nen anderen suchen. du hast jetzt so viele hinweise bekommen und zu keinem einzigen gezeigt, was du versucht hast.
und ein kleines lauffähiges fiddle das den fehler/die frage/das problem zeigt hast du bisher auch nicht gemacht. erwartest du das alles von anderen? dann müsste man mal über bezahlung sprechen.
 
Die Frage ist immernoch wie aus dem folgenden String-Array das letzte C_Value (133) auswählen kann:
Weise dieses String-Array einer Variable zu und greife wie bei einem Array darauf zu, oder verstehe ich da was falsch?
HTML:
<!DOCTYPE html>
<html lang="de">
<head>
    <title>String_Array</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
    </style>
    <script>
        var stringArray = [{
                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"
            }];

        function displayStringArray() {
            console.log('String array: ', stringArray);
        }

        function displayStringArrayLength() {
            console.log('String array lenght: ', stringArray.length);
        }

        function displayStringArrayLastObject() {
            console.log('String array last object: ', stringArray[stringArray.length - 1]);
        }

        function displayStringArrayLastObjectC_Value() {
            console.log('String array last object C_VALUE: ', stringArray[stringArray.length - 1].C_VALUE);
        }
    </script>
</head>

<body>
    <div id="calculator">
        <input type="button" value="console.log string array" onclick="displayStringArray();" />
        <br />
        <br />
        <input type="button" value="console.log string array length" onclick="displayStringArrayLength();" />
        <br />
        <br />
        <input type="button" value="console.log string array last object" onclick="displayStringArrayLastObject();" />
        <br />
        <br />
        <input type="button" value="console.log string array last object C_VALUE" onclick="displayStringArrayLastObjectC_Value();" />
        <br />
        <br />
    </div>
</body>
</html>
 
mini, das Zeugs kommt ja invalid aus seiner Datenbank was er aber DBseitig nicht ändern kann. Daher mein Vorschlag mit eval aber er zeigt leider nicht, was er mit welchem Code versucht hat. Leider stellt er dazu aber auch keine Frage die man beantworten könnte, um weiter zu kommen.
Und ebenfalls leider weiß man auch nicht, ob das jetzt am [ liegt oder an den fehlenden Quotes für die Keys oder beides. Eigentlich weiß man gar nichts, was er aber auch nicht zu ändern versucht :(
 
Wenn er das aus der Datenbank bekommt was er unter Beitrag#28 gezeigt hat, dann funktionert es doch wie unter Beitrag#30 bewiesen.

Hoffentlich haben wir hier nicht nur ein einfaches Groß-/Kleinschreibungsproblem, denn er schreibt immer was von C_Value, in dem gezeitgten String-Array steht als Definition aber immer C_VALUE
 
Wenn du den Inputs aus der Datenbank zu 100% trauen kannst, funktioniert dieser gute alte Ersatz für die JSON-Funktionen:
jsfiddle

Wenn nicht, kannst du mit regulären Ausdrücken deine Struktur valide machen.

LG jspit
 
Danke dir, für deine Antwort.
Ich glaube ich habe das Problem falsch beschrieben, bzw. es ist irgend etwas andres falsch das ich selber nicht ganz verstehe.
Den Teil kann ich auf jedenfall verwenden sobald ich es schaffe die Nachrichten in ein Array zu schieben, aber das klappt nicht.

Ich bekomme die 10 Nachrichten nur angezeigt wenn ich mir das übergebene Objekt mit: Objekt.toSource() eingebe.
Laut des Codes, sollten die Nachrichten in einem JSON-String übergeben werden. Der JSON-String ist in einem Objekt mit dem Namen oData enthalten.

Jetzt ist das Problem, dass ich dieses Objekt in ein Array Packen muss um es zu bearbeiten. Ich weiß grad nur nicht wie ich diees Objekt verarbeiten kann bzw ob es wirklich ein JSON-String ist.

Gruß Daniel

- - - Aktualisiert - - -

mini, das Zeugs kommt ja invalid aus seiner Datenbank was er aber DBseitig nicht ändern kann. Daher mein Vorschlag mit eval aber er zeigt leider nicht, was er mit welchem Code versucht hat. Leider stellt er dazu aber auch keine Frage die man beantworten könnte, um weiter zu kommen.
Und ebenfalls leider weiß man auch nicht, ob das jetzt am [ liegt oder an den fehlenden Quotes für die Keys oder beides. Eigentlich weiß man gar nichts, was er aber auch nicht zu ändern versucht :(

Hi,

ich danke dir für deine Bemühungen.
Ich weiß nur nicht was ich hochladen soll, was euch bzw. dir helfen würde?
Das Problem ist im moment hauptsächlich, dass ich wenn ich auf das Objekt zugreifen will immer ein Fehler kommt, auch bei dem eval.

Gruß
 
Zuletzt bearbeitet von einem Moderator:
Ich weiß nur nicht was ich hochladen soll, was euch bzw. dir helfen würde?
nicht uns sondern dir! Dreh mal deine gedanken richtig rum. wir verbringen unsere zeit hier nicht, weil wir nichts anderes zu tun hätten!!

überleg doch mal was man sinnvolles tun könnte, wenn funktionierender code im eigenen umfeld plötzlich nicht mehr tut was von ihm erwartet wird.

tipp: es passt nur zu 99 % aber es drückt es aus: divide et impera
 
Das Objekt wird von einer Funktion befüllt. Diese holt immer die letzten 10 Nachrichten von einer Datenbank und speichert diese in dem Objekt.
Ist das eine Funktion in deinem JavaScript oder wie/wo/was?


Das Objekt heißt oData.
Ist das jenes, welches du in deiner Meinung nach in deinem ersten Beitrag gezeigt hast?


Der String wird von einer Datenbank abgeholt und wird so in ein Objekt übergeben.
Wo und wie passiert das? Code zeigen?


Also das im ersten mit den zehn Nachrichten bekomme ich nur wenn ich das objekt in ein String-Array umwandle und ausgebe.
Auch hier: Wo und wie passiert das? Code zeigen?


Gebe ich nur das Objekt aus kommt : objekt objekt objekt objekt
Gibst du was wo aus? Code zeigen?


Ich glaube ich habe das Problem falsch beschrieben, bzw. es ist irgend etwas andres falsch das ich selber nicht ganz verstehe.
Deswegen ist mehr Code. oder ein reduziertes Beispiel wie in meinem Beitrag, oder sogar eine Testseite die online verfügbar ist SEHR hilfreich.


Den Teil kann ich auf jedenfall verwenden sobald ich es schaffe die Nachrichten in ein Array zu schieben, aber das klappt nicht.
Und genau diesen Teil verweigerst du zu zeigen? Warum?


Ich bekomme die 10 Nachrichten nur angezeigt wenn ich mir das übergebene Objekt mit: Objekt.toSource() eingebe.
Wie/wo/wann genau wendest du Objekt.toSource() denn an? Und vor allem weshalb wendest du das an?


Laut des Codes, sollten die Nachrichten in einem JSON-String übergeben werden. Der JSON-String ist in einem Objekt mit dem Namen oData enthalten.
Bezüglich JSON-String dürfte jedem Lser der es bis hier her geschafft hat klar geworden sein, das du KEIN VALIDES JSON übergeben bekommst.


Jetzt ist das Problem, dass ich dieses Objekt in ein Array Packen muss um es zu bearbeiten.
Hier ist dein Denkfehler bzw. deine falsche Ausdrucksweise! Ein Objekt kannst du genauso gut in JavaScript verarbeiten wie ein Array. Wenn du jetzt aber ein Objekt als String hast (was du bermutlich meinst), dann must du es mit JavaScript parsen damit daraus ein echtes Objedkt wird und danach kannst du es in ein Array wandeln/packen wie auch immer, wobei das wie gesagt bei deinem Fall nonsens ist.


Ich weiß grad nur nicht wie ich diees Objekt verarbeiten kann bzw ob es wirklich ein JSON-String ist.
Das wissen wir auch nicht (unsere Vermutungen und Erfahrungen jetzt mal aussen vor gelassen), weil wir nicht wissen wie deine erwähnte Funktion das mit den Abfragen der Daten aus der Datenbank und dem anschließendem Zuweisen an irgend eine Variable/Objekt/Array macht. Code zeigen?


Das Problem ist im moment hauptsächlich, dass ich wenn ich auf das Objekt zugreifen will immer ein Fehler kommt, auch bei dem eval.
Welcher Fehler denn nun schon wieder? Laut deinem Beitrag #24
Hab grad nochmal geschaut. Also das im ersten mit den zehn Nachrichten bekomme ich nur wenn ich das objekt in ein String-Array umwandle und ausgebe.
Gebe ich nur das Objekt aus kommt : objekt objekt objekt objekt
ist der Fehler doch behoben !?!?!?
 
Hab die Lösung gefunden, bzw wurde mir geholfen.

Der Zugriff geht über: Object[9]["C_VALUE"];

Sind wohl die Anführungsstriche die den Unterschied machen.
Danke euch für eure Mühen und Hilfe.
 
erste frage: wieso steht da fix 9 drin? du wolltest das letzte haben. ist das immer 9?

zweite frage: wie genau hattest du das hintere denn die ganze zeit geschrieben?
 
erste frage: wieso steht da fix 9 drin? du wolltest das letzte haben. ist das immer 9?

zweite frage: wie genau hattest du das hintere denn die ganze zeit geschrieben?

Die neun ist nur so gewesen. Geht auch mit Objekt.length-1 wie es hier vorgeschlagen war.

Hab es nur ohne Anführungsstriche also: variable[variable.lenght-1][C_VALUE] oder wie es vorgeschlagen war: variable[variable.lenght-1]['C_VALUE'] probiert. So geht es leider nicht.
Nur so: variable[variable.lenght-1]["C_VALUE"]
 
Zurück
Oben