Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JSON

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON

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

      Hallo,

      ich bekomme mein Json Object nicht gelesen. Ich weiß nicht wo das Problem liegt.

      Ich lade einen Json String von einem meiner Server. Dieser landet in "body".

      console.log(body);
      var data=JSON.parse(body);
      console.log(data.attributes.ip)
      var data2=JSON.stringify(data.attributes);
      console.log(data2);
      
      

      folgende Fehlermeldung erscheint

      javascript.1 script.js.Eigene.Audi: [{"id":264939,"attributes":{"ignition":false,"status":4,"battery":6,"rssi":4,"ip":"2.xxx.xxx.34","distance":0.0,"totalDistance":9554952.72},"deviceId":1,"type":null,"protocol":"gt06","serverTime":null,"deviceTime":"2017-07-12T21:06:43.996+0000","fixTime":"2017-07-12T14:41:50.000+0000","outdated":true,"valid":true,"latitude":xx.x7622222222222,"longitude":xx.x78912222222222,"altitude":0.0,"speed":0.0,"course":248.0,"address":"94A Straße, Berlin, BB, DE","accuracy":0.0,"network":null}]
      javascript.1 TypeError: Cannot read property 'ip' of undefined at Request.callback [as _callback] (script.js.Eigene.Audi:163:28) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:188:22) at emitTwo (events.js:106:13) at Request.emit (events.js:191:7) at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1171:10) at emitOne (events.js:96:13) at Request.emit (events.js:188:7) at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1091:12) at IncomingMessage.g (events.js:292:16) at emitNone (events.js:91:20)
      
      

      Ich verstehe nicht wieso ich z.B. das Attribut ip nicht aufgerufen bekomme.

      Ich kann das Objekt wieder in Json wandeln. Es funktioniert. Die Daten sind also da. Welche Syntax ist falsch bei mir? Ich finde nichts, was funktioniert im Netz.

      Selbst das erste Attribut ID läst sich nicht ansprechen.

      var data=JSON.parse(body);
      console.log(data.id);
      var data2=JSON.stringify(data.attributes);
      console.log(data2);
      var data2=JSON.stringify(data);
      console.log(data2)
      
      
      23:15:33.019	[info]	javascript.1 script.js.Eigene.Audi: [{"id":264940,"attributes":{"ignition":false,"status":4,"battery":6,"rssi":4,"ip":"2.xxx.xxx.34","distance":0.0,"totalDistance":9554952.72},"deviceId":1,"type":null,"protocol":"gt06","serverTime":null,"deviceTime":"2017-07-12T21:11:44.018+0000","fixTime":"2017-07-12T14:41:50.000+0000","outdated":true,"valid":true,"latitude":xx.x7622222222222,"longitude":xx.x78912222222222,"altitude":0.0,"speed":0.0,"course":248.0,"address":"94A Straße, Berlin, BB, DE","accuracy":0.0,"network":null}]
      23:15:33.020	[info]	javascript.1 script.js.Eigene.Audi: undefined
      23:15:33.021	[info]	javascript.1 script.js.Eigene.Audi: undefined
      23:15:33.021	[info]	javascript.1 script.js.Eigene.Audi: [{"id":264940,"attributes":{"ignition":false,"status":4,"battery":6,"rssi":4,"ip":"2.xxx.xxx.34","distance":0,"totalDistance":9554952.72},"deviceId":1,"type":null,"protocol":"gt06","serverTime":null,"deviceTime":"2017-07-12T21:11:44.018+0000","fixTime":"2017-07-12T14:41:50.000+0000","outdated":true,"valid":true,"latitude":xx.x7622222222222,"longitude":xx.x78912222222222,"altitude":0,"speed":0,"course":248,"address":"94A Straße,Berlin, BB, DE","accuracy":0,"network":null}]
      
      

      Kann mir jemand helfen und sagen, wo mein Fehler liegt?

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        Hi Roland

        Bin gerade auf Handy unterwegs Bisse schwer lesen, hilft dir dieser Post vielleicht?

        http://forum.iobroker.net/viewtopic.php?t=7204

        Ich verstehe nicht ganz warum du Attribute.xx JSON Wert nimmst

        Edit: Ah sorry du hast in einen object mehrere Werte lese ich jetzt erst, muss dan jetzt handtuch werfen sorry für den nutzlosen Post

        –-----------------------

        Send from mobile device

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

          Das sieht nach einem Array mit einem Element aus [eckige Klammer). Versuche es mal so:

          console.log(data[0].attributes.ip)
          
          1 Reply Last reply Reply Quote 0
          • R
            roland last edited by

            Danke.

            Das funktioniert.

            Ich habe nach bestem wissen nach der korrekten Syntax gesucht data[0] in eckige Klammer zu setzen habe ich nicht vericht. Ich habe runden klammern verwendet.

            Jetzt komme ich weiter.

            Prima.

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

            Support us

            ioBroker
            Community Adapters
            Donate

            927
            Online

            31.9k
            Users

            80.1k
            Topics

            1.3m
            Posts

            3
            4
            1059
            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