# Operator Zeichen im Variablennamen



## UweG (24. Aug 2019)

Hallo
Ich bin absoluter Anfänger in Java und habe Probleme mit einer Schreibweise.
Folgende Textzeile möchte ich ausgeben:
msg.payload ={"fields" : {"MessageID":msg.header.message-id,"Von":msg.header.from.value[0].address,"An":msg.header.to.value[0].address,"EingangsDatum":msg.date}}
return msg;

Das Problem hier ist der Wert 'msg.header.message-id'
Wie ist hier die Schreibweise, dass das Minuszeichen nicht als Operator gedeutet wird?
Ich habe es mit Anführungszeichen, runde-, geschweifte-, eckige-Klammern etc. versucht und auch in der Internetsuche nichts gefunden.
Auch in der Literatur zu Java habe ich wahrscheinlich nach dem falschen Stichwort gesucht.

Danke vorab für eure Hilfe.
Gruss
Uwe


----------



## httpdigest (24. Aug 2019)

Das ist nicht Java, sondern Javascript! Falsches Subforum. 
Dennoch:

```
msg.header["message-id"]
```
Reference: https://stackoverflow.com/questions...t-property-with-a-hyphen-in-it#answer-7122629


----------



## UweG (24. Aug 2019)

Danke für die Antwort und Sorry für das falsche Forum.
Gruss
Uwe


----------



## Xyz1 (24. Aug 2019)

UweG hat gesagt.:


> msg.payload ={"fields" : {"MessageID":msg.header.message-id,"Von":msg.header.from.value[0].address,"An":msg.header.to.value[0].address,"EingangsDatum":msg.date}}



Demnach sollte

```
msg.payload ={"fields" : {"MessageID":msg.header.messageId,"Von":msg.header.from.value[0].address,"An":msg.header.to.value[0].address,"EingangsDatum":msg.date}}
```
klappen.


----------



## httpdigest (24. Aug 2019)

Tobias-nrw hat gesagt.:


> Demnach sollte
> 
> ```
> msg.payload ={"fields" : {"MessageID":msg.header.messageId,"Von":msg.header.from.value[0].address,"An":msg.header.to.value[0].address,"EingangsDatum":msg.date}}
> ...


Nein, du hast aus dem Property "message-id" jetzt einfach "messageId" gemacht. Wenn das Property aber nunmal "message-id" heißt, geht das natürlich nicht.

```
msg.payload = {
  fields: {
    MessageID: msg.header["message-id"],
    Von: msg.header.from.value[0].address,
    An: msg.header.to.value[0].address,
    EingangsDatum: msg.date
  }
}
```
(P.S.: In Javascript braucht man Object Keys nicht in Anführungszeichen zu packen. Es sei denn natürlich, sie enthalten Operatoren oder andere ungültige Identifier-Zeichen)


----------



## UweG (24. Aug 2019)

UrsprungsZeile:
msg.payload ={"fields" : {"MessageID":msg.header.message-id}}
wobei 'message-id' ein Wert aus einer empfangenen eMail darstellt. 
Leider funktionieren beide Schreibweisen nicht.
msg.payload ={"fields" : {"MessageID":msg.header.["message-id"]}} -- Anzeige "fehlerhafte schreibweise"
msg.payload ={"fields" : {"MessageID":msg.header.messageId}} -- MessageID wird ignoriert bei der ausgäbe
Zur Ergänzung.:
Ich möchte diese Zeile in Node-Red nutzen und wie ich festgestellt habe ist die Sprache hier dann node.js
Da bin ich wohl im total falschen Forum gelandet.

Gruss
Uwe


----------



## httpdigest (24. Aug 2019)

UweG hat gesagt.:


> msg.payload ={"fields" : {"MessageID":msg.header.["message-id"]}} -- Anzeige "fehlerhafte schreibweise"


Das ist auch nicht das, was ich geschrieben habe. Bitte lese bzw. copy/paste ganz genau den String von meinem Post.

Und die Sprache ist nicht node.js, sondern immer noch JavaScript. Es ist halt JavaScript, welches nicht im Browser sondern in Node ausgeführt wird.


----------



## UweG (24. Aug 2019)

Vielen Dank.
Der Punkt war es.
Du hast Recht!! Lesen hilft Leben zu retten ;-)

Gruss
Uwe


----------



## Xyz1 (24. Aug 2019)

UweG hat gesagt.:


> Lesen hilft Leben zu retten


Ich dachte das wäre Erste Hilfe....


----------



## httpdigest (24. Aug 2019)

UweG hat gesagt.:


> Lesen hilft Leben zu retten ;-)


Okayy..... was für eine Anwendung schreibst du nochmal?...


----------



## UweG (24. Aug 2019)

Ich dachte an das Minenfeld


----------



## UweG (24. Aug 2019)

Ich nutze Nino als Datenbank und möchte mit Node-Red erst einmal eine Mail Datenbank bauen, in der alle Mails inkl. Anhänge gespeichert werden und über eine selbst erstellte Whitelist in Ninox die Absenderderart  gefiltert werden ob die Mail gespeichert wird oder nicht.
Ih nutze hier die Rest-API Schnittstelle von Ninox und spreche sie über Node-Red an.
Das funktioniert so schon ganz gut, bis auf meine mangelnden Java-Kenntnis, die ich mir sukzessiv aneigne.


----------



## httpdigest (24. Aug 2019)

UweG hat gesagt.:


> bis auf meine mangelnden Java-Kenntnis, die ich mir sukzessiv aneigne.


Okay, aber vielleicht fängst du erstmal mit Java*Script* an. Wie bereits gesagt: Die Sprache, die du hier verwendest, nennt sich *JavaScript* und hat sehr wenig mit Java zu tun.


----------



## UweG (24. Aug 2019)

Danke. Das mache ich.


----------

