Open ChrisKoh83 opened 4 years ago
Hi, kannst du uns erklären warum du das gerne hättest? BG
Hi, ich versuche das json weiter zu verarbeiten und habe dabei das Problem das es eben die Werte "name, number .." dann mehrfach gibt nun nur nach Ihrem Value unterscheidbar sind.
Also grundsätzlich kann es angepasst werden wobei das für mich eigentlich keine Option ist. Diese Struktur zieht sich durch alle Dienste wie ein roter faden (WebUI,Cloud,Server usw.) In welcher Programmiersprache willst du das Json verarbeiten? Vl zeigst uns du mal deinen Code. Eventuell können wir anders helfen. BG
Also das wird dahingehend schwierig, da sich damit die Struktur des JSON ändert und somit alle Schnittstellen angepasst werden müssten, da die bisherigen die Struktur dann nicht mehr lesen können. Das JSON Array sieht glaube ich zudem nicht vor, dass die einzelnen Objekte einen "Namen" bekommen. Das müssten dann eher identische Objekte in einem Objekt werden.
Wo genau verarbeitest du das JSON?
Danke für die schnellen Antworten von euch! Das habe ich schon "befürchtet" das dies sich auf nachfolgende Systeme auswirken könnte.
Ich versuche gerade die Werte (json) in Splunk einzulesen. Das geht mit einen HTTP Event Collector der automatisch die json Struktur in Felder und Werte aufschlüsselt.
Nun ist es ja so das unter Channels ja mehrere Array ohne Namen stehen. Diese Arrays haben ja wieder Objekte mit Values.
Leider sieht das dann so aus:
curl -k "http://192.168.200.2:8088/services/collector" -H "Authorization: Splunk XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX" -d '{"sourcetype": "_json", "event": {"system":{"time":"1585592006","unit":"C","soc":65,"charge":false,"rssi":31,"online":0},"channel":[{"number":1,"name":"Kanal 1","typ":0,"temp":999.00,"min":0.00,"max":55.00,"alarm":3,"color":"#0C4C88"},{"number":2,"name":"Kanal 2","typ":0,"temp":999.00,"min":0.00,"max":55.00,"alarm":3,"color":"#22B14C"},{"number":3,"name":"Kanal 3","typ":0,"temp":999.00,"min":10.00,"max":74.00,"alarm":3,"color":"#EF562D"},{"number":4,"name":"Kanal 4","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#FFC100"},{"number":5,"name":"Kanal 5","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#A349A4"},{"number":6,"name":"Grill","typ":0,"temp":18.00,"min":10.00,"max":300.00,"alarm":0,"color":"#804000"},{"number":7,"name":"Kanal 7","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#5587A2"},{"number":8,"name":"Kanal 8","typ":0,"temp":999.00,"min":10.00,"max":350.00,"alarm":0,"color":"#5C7148"}],"pitmaster":{"type":["off","manual","auto"],"pm":[{"id":0,"channel":1,"pid":0,"value":0,"set":0.00,"typ":"off","set_color":"#ff0000","value_color":"#000000"}]}}}'
Kannst du manuell mappen oder macht das Splunk automatisch? Normalerweise würde das in etwa so aussehen: json.channel[0].name (mit 0 greifst du auf das erste Element zu)
Das Mapping geschieht automatisch. So hatte ich es eigentlich auch verstanden. Aber da muss ich mich noch mal weiter einlesen.
Vl hilft dir das, kann ich nur schwer beurteilen da ich splunk nicht kenne... https://answers.splunk.com/answers/338341/breaking-large-json-array-from-rest-input-into-eve.html
Wäre es möglich das json so um zu bauen das die Kanal Namen als eigene Objekte vorhanden sind? z.B.: