2017-06-25 5 views
1

Ich habe ein JSON-Objekt wie folgt:JavaScript Programmierlogik mit JSON

{"_id":"594fe31b3e158c0e70c9bb3e","deviceid":"342","alldata":"{\"deviceid\":\"342\",\"voltage\":\"14\",\"current\":\"9\",\"power\":\"92\",\"status\":\"1\"}","receivedon":"2017/06/25 21:51:47","__v":0} 

Das Problem ist, dass, wenn ich die Ausgabe versuchen obj.alldata.voltage, es gibt nur leer; Das führt mich zu glauben, dass obj.alldata ein String ist und nicht ein JSON-Objekt.

Wenn ich obj.alldata drucken, gibt es eine Ausgabe wie:

{"deviceid":"342","voltage":"14","current":"9","power":"92","status":"1"} 

Wie kann ich obj.receivedon sowie obj.alldata.voltage, richtig?

+0

versuchen [jsonifing] (https://developer.mozilla.org/en/docs/Web/JavaScript/Re Konferenz/Global_Objects/JSON/Parse) obj.alldata – Abra001

+0

Sie die Parse() Funktion in JS verwendet werden soll, und wird die Daten ein JavaScript-Objekt. –

+0

„die mir das obj.alldata zu denken führt, ist ein String und kein JSON-Objekt“ genau. Es gibt kein JSON-Objekt. Sie müssen verstehen, mit welchen Arten Sie handeln. Sie haben entweder ein Objekt oder eine Zeichenfolge * (Wich kann oder nicht JSON enthalten) *. Und Sie können nur auf die Eigenschaften des Objekts und nicht auf die Zeichenfolge zugreifen. – Thomas

Antwort

1

Entfernen Sie die Zitate des alldata Wert, so wird es nicht als String behandelt werden.

{ "_id": "594fe31b3e158c0e70c9bb3e", "deviceid": "342", "alldata": { "deviceid":"342","voltage":"14","current":"9","power":"92","status":"1"}, "receivedon": "2017/ 06/25 21: 51:47", "__v": 0 }; 
0
data = { 
     "_id": "594fe31b3e158c0e70c9bb3e", 
     "deviceid": "342", 
     "alldata": {\"deviceid\":\"342\",\"voltage\":\"14\",\"current\":\"9\",\"power\":\"92\",\"status\":\"1\"}", 
     "receivedon": "2017/06/25 21:51:47", 
     "__v": 0 
     } 

Das Obige ist eine Hash oder ein js Objekt außer dem Wert für die Taste "alldata" ist ein json, müssen Sie, dass json parsen

data.alldata = JSON.parse (data .alldata)

Danach wird Ihr Objekt aussehen wird dieses

 { _id: "594fe31b3e158c0e70c9bb3e", 
     deviceid: "342", : 
     alldata: { 
      deviceid: "342", 
      voltage: "14", 
      current: "9", 
      power: "92", 
      status: "1" 
     }, 
    receivedon: "2017/06/25 21:51:47", __v: 0 
    }