Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] JSON - Werte von arrays ändern ?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] JSON - Werte von arrays ändern ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • DJMarc75
      DJMarc75 last edited by DJMarc75

      Tag,
      ich habe eine recht grosse JSON welche mit einigen hundert Arrays befüllt ist.
      Bestimmte Arrays möchte ich zur Weiterverarbeitung anpassen.

      Ausgangssituation:

      {
          "value": 62562,
          "text": "Asterix & Obelix gegen Caesar",
          "icon": "/library/metadata/62562/thumb/1660379273",
          "year": 1999,
          "views": 13
        },
        {
          "value": 62544,
          "text": "Asterix - Operation Hinkelstein",
          "icon": "/library/metadata/62544/thumb/1660379264",
          "year": 1989,
          "views": 0
        },
      

      Nun würde ich gerne alle Werte von "icon" folgend abändern:

      {
          "value": 62562,
          "text": "Asterix & Obelix gegen Caesar",
          "icon": "1234/library/metadata/62562/thumb/1660379273ABCD",
          "year": 1999,
          "views": 13
        },
        {
          "value": 62544,
          "text": "Asterix - Operation Hinkelstein",
          "icon": "1234/library/metadata/62544/thumb/1660379264ABCD",
          "year": 1989,
          "views": 0
        },
      

      quasi jeweils ein "1234" vorne dran und ein "ABCD" hinten dran.

      Mir fehlt der Ansatz.
      Vll kann jemand helfen ?

      Danke

      mickym paul53 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @DJMarc75 last edited by mickym

        @djmarc75 sagte in JSON - Werte von arrays ändern ?:

        Wahrscheinlich geht es einfacher, aber auf die Schnelle würde ich es so machen:

        $.{
            "value": value,
            "text": text,
            "icon": "1234" & icon & "ABCD",
            "year": year,
            "views": views
          }
        
        
        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @DJMarc75 last edited by

          @djmarc75 sagte: mit einigen hundert Arrays befüllt

          Eindimensional oder mehrdimensional? Ich sehe keine Array-Struktur.
          Ausreichend RAM ist vorhanden?

          DJMarc75 1 Reply Last reply Reply Quote 0
          • DJMarc75
            DJMarc75 @paul53 last edited by

            @paul53 sagte in JSON - Werte von arrays ändern ?:

            Eindimensional oder mehrdimensional? Ich sehe keine Array-Struktur.
            Ausreichend RAM ist vorhanden?

            Eindimensional und knapp 5GB RAM von 8 verfügbar.

            paul53 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active last edited by mickym

              @mickym sagte in JSON - Werte von arrays ändern ?:

                                                                                                                                          $.{                                                                                                                                                                                "value": value,                                                                                                                                                                                "text": text,                                                                                                                                                                                "icon": "1234" & icon & "ABCD",                                                                                                                                                                                "year": year,                                                                                                                                                                                "views": views                                                                                                                                                                              }
              

              1e3f5c3c-1486-47af-87fa-f0532c4c124a-image.png

              @DJMarc75 Aber kannst Du machen wie Du willst. Ich nutze halt JSONATA - da es in der NodeRed Welt sehr praktisch ist. 😉

              DJMarc75 1 Reply Last reply Reply Quote 1
              • paul53
                paul53 @DJMarc75 last edited by

                @djmarc75 sagte: Eindimensional

                Also meinst Du ein Array mit vielen Objekten wie gezeigt?

                DJMarc75 1 Reply Last reply Reply Quote 0
                • DJMarc75
                  DJMarc75 @paul53 last edited by

                  @paul53 sagte in JSON - Werte von arrays ändern ?:

                  Also meinst Du ein Array mit vielen Objekten wie gezeigt?

                  Ja, falsch ausgedrückt 🙄

                  @mickym sagte in JSON - Werte von arrays ändern ?:

                  Ich nutze halt JSONATA

                  Ich setze das jetzt mal so um... momentle

                  1 Reply Last reply Reply Quote 0
                  • DJMarc75
                    DJMarc75 @mickym last edited by

                    @mickym sagte in JSON - Werte von arrays ändern ?:

                                                                                                                                            $.{                                                                                                                                                                                "value": value,                                                                                                                                                                                "text": text,                                                                                                                                                                                "icon": "1234" & icon & "ABCD",                                                                                                                                                                                "year": year,                                                                                                                                                                                "views": views                                                                                                                                                                              }
                    

                    Läuft:

                    Screenshot 2022-12-19 115712.png

                    musste nur JSONATA anpassen da die Quelldatei andere Werte liefert.

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @DJMarc75 last edited by mickym

                      @djmarc75 Hat das einen Grund, warum Du das Ergebnis in Quellliste speicherst und nicht gleich direkt als Input verwendest - die Abfrage ist doch eh lokal? Oder mit anderen Worten kann man den "result" der Abfrage nicht gleich in ein Objekt umwandeln?

                      DJMarc75 2 Replies Last reply Reply Quote 0
                      • DJMarc75
                        DJMarc75 @mickym last edited by

                        @mickym sagte in [gelöst] JSON - Werte von arrays ändern ?:

                        Hat das einen Grund

                        Ist schon wieder raus. Hatte ich nur als Kontrolle drin - anstatt ein DEBUG einzubauen und mir das Log mit 1004 Einträgen zuzuhauen 😀

                        1 Reply Last reply Reply Quote 1
                        • DJMarc75
                          DJMarc75 @mickym last edited by

                          @mickym NACHTRAG:

                          Screenshot 2022-12-19 143754.png

                          Selbiges in NodeRed umgesetzt 😎

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @DJMarc75 last edited by

                            @djmarc75 Geht auch ohne split und join, wenn Du den gleichen Ausdruck verwendest. 😉

                            19b48350-c238-442d-bd4b-25d5278200fc-image.png

                            Dis JSON-Node brauchst und die iobroker-Out Node auch. 😉

                            Ich gehe auch davon aus, dass Du die von der http-request Node ein Objekt ausgeben lässt.

                            [
                               {
                                   "id": "0107756917741370",
                                   "type": "inject",
                                   "z": "289f539dcc33814e",
                                   "name": "",
                                   "props": [
                                       {
                                           "p": "payload"
                                       }
                                   ],
                                   "repeat": "",
                                   "crontab": "",
                                   "once": false,
                                   "onceDelay": 0.1,
                                   "topic": "",
                                   "payload": "[{\"value\":62562,\"text\":\"Asterix & Obelix gegen Caesar\",\"icon\":\"/library/metadata/62562/thumb/1660379273\",\"year\":1999,\"views\":13},{\"value\":62544,\"text\":\"Asterix - Operation Hinkelstein\",\"icon\":\"/library/metadata/62544/thumb/1660379264\",\"year\":1989,\"views\":0}]",
                                   "payloadType": "json",
                                   "x": 310,
                                   "y": 4280,
                                   "wires": [
                                       [
                                           "9c6b8a3a2bf861cd"
                                       ]
                                   ]
                               },
                               {
                                   "id": "9c6b8a3a2bf861cd",
                                   "type": "change",
                                   "z": "289f539dcc33814e",
                                   "name": "",
                                   "rules": [
                                       {
                                           "t": "set",
                                           "p": "payload",
                                           "pt": "msg",
                                           "to": "payload.{\t   \"value\": value,\t   \"text\": text,\t   \"icon\": \"1234\" & icon & \"ABCD\",\t   \"year\": year,\t   \"views\": views \t}",
                                           "tot": "jsonata"
                                       }
                                   ],
                                   "action": "",
                                   "property": "",
                                   "from": "",
                                   "to": "",
                                   "reg": false,
                                   "x": 490,
                                   "y": 4280,
                                   "wires": [
                                       [
                                           "250b99cbe6b00589"
                                       ]
                                   ]
                               },
                               {
                                   "id": "250b99cbe6b00589",
                                   "type": "debug",
                                   "z": "289f539dcc33814e",
                                   "name": "change Icon in Object",
                                   "active": true,
                                   "tosidebar": true,
                                   "console": false,
                                   "tostatus": false,
                                   "complete": "payload",
                                   "targetType": "msg",
                                   "statusVal": "",
                                   "statusType": "auto",
                                   "x": 720,
                                   "y": 4280,
                                   "wires": []
                               }
                            ]
                            

                            DJMarc75 1 Reply Last reply Reply Quote 0
                            • DJMarc75
                              DJMarc75 @mickym last edited by

                              @mickym sagte in [gelöst] JSON - Werte von arrays ändern ?:

                              wenn Du den gleichen Ausdruck verwendest.

                              eben nicht, deshalb ja die beiden Nodes:

                              Screenshot 2022-12-19 152253.png

                              @mickym sagte in [gelöst] JSON - Werte von arrays ändern ?:

                              ttp-request Node ein Objekt ausgeben lässt

                              Screenshot 2022-12-19 152337.png

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @DJMarc75 last edited by mickym

                                @djmarc75 Lass mal das payload weg 😉 Der Punkt nach der payload also

                                0f243498-a870-4d41-be63-c1ab4d94e447-image.png

                                spaltet bereits das ganze Array in einzelne Objekte auf und da Du quasi schon im Objektkontext bist, darfst Du nicht mehr auf die payload referenzieren. Am Besten schaust Du Dir das in dem JSONATA try Teil an.

                                Der Punkt ist ein sogenannter Path Operator. 😉

                                d756ab7e-9796-4607-ba13-bca559308a81-image.png

                                DJMarc75 1 Reply Last reply Reply Quote 1
                                • DJMarc75
                                  DJMarc75 @mickym last edited by

                                  @mickym check und passt

                                  Screenshot 2022-12-19 153244.png

                                  1 Reply Last reply Reply Quote 1
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  585
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

                                  3
                                  15
                                  287
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo